PHP Mysqli封裝是PHP中的一種技術,它可用于管理MySQL數據庫的讀寫操作。經常我們需要去執行比較復雜的操作,如批量更新,查詢后直接操作等,而通過Mysqli封裝,我們可以完成這些操作,從而達到更高效的目的。
使用mysqli連接到MySQL數據庫:
$dbhost = "localhost"; $dbuser = "root"; $dbpass = "password"; $dbname = "test"; mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
執行SQL查詢:
$sql = "SELECT * FROM users"; $result = mysqli_query($link, $sql); while($row = mysqli_fetch_array($result)) { echo $row['username']; }
執行SQL更新:
$sql = "UPDATE users SET age=30 WHERE username='john'"; if (mysqli_query($link, $sql)) { echo "Record updated successfully"; } else { echo "Error updating record: " . mysqli_error($link); }
封裝
我們可以使用面向對象的方式對Mysqli進行封裝。下面是一個例子:
<?php class Database { private $host; private $user; private $password; private $database; private $link; public function __construct($host, $user, $password, $database) { $this->host = $host; $this->user = $user; $this->password = $password; $this->database = $database; $this->link = mysqli_connect($this->host, $this->user, $this->password, $this->database); } public function execQuery($sql) { $result = mysqli_query($this->link, $sql); if(!$result) { echo "Error while execQuery"; return false; } return $result; } public function getAll($table) { $sql = "SELECT * FROM $table"; $result = $this->execQuery($sql); $array = array(); while($row = mysqli_fetch_array($result)) { $array[] = $row; } return $array; } public function insertData($table, $data) { $keys = array_keys($data); $values = array_values($data); $sql = "INSERT INTO $table (".implode(",", $keys).") VALUES ('".implode("','", $values)."')"; if(!$this->execQuery($sql)) { echo $sql; exit; } } } ?>
上述代碼中的class Database類封裝了我們的mysqli操作。假設我們有一個user表,它有id, name和age三個字段。
使用 getAll 方法獲取 user 表中的所有數據:
$db = new Database('localhost', 'root', '', 'test'); $data = $db->getAll('user'); print_r($data);
使用 insertData 方法往 user 表中插入一條新數據:
$data = array( 'name' =>'John', 'age' =>30 ); $db->insertData('user', $data);
使用Mysqli封裝,可以簡化我們對Mysqli的操作。通過封裝,我們可以更加方便地對MySQL數據庫進行操作,從而提高我們的開發效率。當然,也可以在封裝時自定義一些方法,來完成更加特定的操作。