PHP基于MySQLI函數封裝的數據庫連接工具類【定義與用法】
更新時間:2017年08月11日 11:23:48 作者:woider
這篇文章主要介紹了PHP基于MySQLI函數封裝的數據庫連接工具類,結合實例形式分析了php封裝mysqli函數實現(xiàn)的數據庫操作類定義及連接、增刪改查數據庫等基本操作用法,需要的朋友可以參考下
本文實例講述了PHP基于MySQLI函數封裝的數據庫連接工具類。分享給大家供大家參考,具體如下:
mysql.class.php:
<?php
class mysql
{
private $mysqli;
private $result;
/**
* 數據庫連接
* @param $config 配置數組
*/
public function connect($config)
{
$host = $config['host']; //主機地址
$username = $config['username'];//用戶名
$password = $config['password'];//密碼
$database = $config['database'];//數據庫
$port = $config['port']; //端口號
$this->mysqli = new mysqli($host, $username, $password, $database, $port);
}
/**
* 數據查詢
* @param $table 數據表
* @param null $field 字段
* @param null $where 條件
* @return mixed 查詢結果數目
*/
public function select($table, $field = null, $where = null)
{
$sql = "SELECT * FROM {$table}";
if (!empty($field)) {
$field = '`' . implode('`,`', $field) . '`';
$sql = str_replace('*', $field, $sql);
}
if (!empty($where)) {
$sql = $sql . ' WHERE ' . $where;
}
$this->result = $this->mysqli->query($sql);
return $this->result->num_rows;
}
/**
* @return mixed 獲取全部結果
*/
public function fetchAll()
{
return $this->result->fetch_all(MYSQLI_ASSOC);
}
/**
* 插入數據
* @param $table 數據表
* @param $data 數據數組
* @return mixed 插入ID
*/
public function insert($table, $data)
{
foreach ($data as $key => $value) {
$data[$key] = $this->mysqli->real_escape_string($value);
}
$keys = '`' . implode('`,`', array_keys($data)) . '`';
$values = '\'' . implode("','", array_values($data)) . '\'';
$sql = "INSERT INTO {$table}( {$keys} )VALUES( {$values} )";
$this->mysqli->query($sql);
return $this->mysqli->insert_id;
}
/**
* 更新數據
* @param $table 數據表
* @param $data 數據數組
* @param $where 過濾條件
* @return mixed 受影響記錄
*/
public function update($table, $data, $where)
{
foreach ($data as $key => $value) {
$data[$key] = $this->mysqli->real_escape_string($value);
}
$sets = array();
foreach ($data as $key => $value) {
$kstr = '`' . $key . '`';
$vstr = '\'' . $value . '\'';
array_push($sets, $kstr . '=' . $vstr);
}
$kav = implode(',', $sets);
$sql = "UPDATE {$table} SET {$kav} WHERE {$where}";
$this->mysqli->query($sql);
return $this->mysqli->affected_rows;
}
/**
* 刪除數據
* @param $table 數據表
* @param $where 過濾條件
* @return mixed 受影響記錄
*/
public function delete($table, $where)
{
$sql = "DELETE FROM {$table} WHERE {$where}";
$this->mysqli->query($sql);
return $this->mysqli->affected_rows;
}
}
使用方法
<?php
require_once 'mysql.class.php';
/* 配置連接參數 */
$config = array(
'type' => 'mysql',
'host' => 'localhost',
'username' => 'woider',
'password' => '3243',
'database' => 'php',
'port' => '3306'
);
/* 連接數據庫 */
$mysql = new mysql();
$mysql->connect($config);
/* 查詢數據 */
//1、查詢所有數據
$table = 'mysqli';//數據表
$num = $mysql->select($table);
echo '共查詢到' . $num . '條數據';
print_r($mysql->fetchAll());
//2、查詢部分數據
$field = array('username', 'password'); //過濾字段
$where = 'id % 2 =0'; //過濾條件
$mysql->select($table, $field, $where);
print_r($mysql->fetchAll());
/* 插入數據 */
$table = 'mysqli';//數據表
$data = array( //數據數組
'username' => 'admin',
'password' => sha1('admin')
);
$id = $mysql->insert($table, $data);
echo '插入記錄的ID為' . $id;
/* 修改數據 */
$table = 'mysqli';//數據表
$data = array(
'password' => sha1('nimda')
);
$where = 'id = 44';
$rows = $mysql->update($table, $data, $where);
echo '受影響的記錄數量為' . $rows . '條';
/* 刪除數據 */
$table = 'mysqli';
$where = 'id = 45';
$rows = $mysql->delete($table, $where);
echo '已刪除' . $rows . '條數據';
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php+mysqli數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
php中強制下載文件的代碼(解決了IE下中文文件名亂碼問題)
以下這段代碼作用是:瀏覽器提交excel格式的數據和文件名到服務器上,PHP將請求轉化為可下載的excel文件,并要求瀏覽器彈出文件下載提示窗口2011-05-05
linux下使用crontab實現(xiàn)定時PHP計劃任務失敗的原因分析
這篇文章主要介紹了linux下使用crontab實現(xiàn)定時PHP計劃任務失敗的原因分析,需要的朋友可以參考下2014-07-07

