小編給大家分享一下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中基于MySQLI函數如何封裝數據庫連接工具類”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。