一、mysqli是什麼
MySQLi是PHP自帶的一種用於操作MySQL數據庫的擴展程序,可以看成是PHP對MySQL數據庫進行操作的接口。MySQLi提供了一個更加簡單、面向對象的API,支持新的MySQL特性。
MySQLi擴展既提供了一個面向過程的接口,也提供了一個面向對象的接口,可以滿足不同用戶的需求。
二、面向過程的使用方法
首先,我們需要連接到MySQL數據庫。連接MySQL數據庫時需要提供主機名、用戶名、密碼和數據庫名等信息,如下所示:
$mysqli = mysqli_connect("localhost", "root", "password", "database");
if (!$mysqli) {
echo "連接失敗";
exit;
}
接下來,我們可以執行SQL語句,比如查詢數據表中的數據:
$sql = "SELECT * FROM Table";
$result = mysqli_query($mysqli, $sql);
if (!$result) {
echo "查詢失敗";
exit;
}
while ($row = mysqli_fetch_assoc($result)) {
echo $row["column_name"];
}
mysqli_free_result($result);
最後,我們需要關閉與MySQL數據庫的連接:
mysqli_close($mysqli);
三、面向對象的使用方法
面向對象的使用方法與面向過程的使用方法類似,只不過需要先創建一個MySQLi對象:
$mysqli = new mysqli("localhost", "root", "password", "database");
if ($mysqli->connect_errno) {
echo "連接失敗";
exit;
}
接下來,我們可以執行SQL語句,比如查詢數據表中的數據:
$sql = "SELECT * FROM Table";
$result = $mysqli->query($sql);
if (!$result) {
echo "查詢失敗";
exit;
}
while ($row = $result->fetch_assoc()) {
echo $row["column_name"];
}
$result->close();
最後,我們需要關閉與MySQL數據庫的連接:
$mysqli->close();
四、預處理語句
預處理語句是MySQLi擴展提供的一種安全的SQL執行方法,它是通過將SQL語句中的參數化,從而防止SQL注入攻擊。
預處理語句的使用方法如下:
$mysqli = new mysqli("localhost", "root", "password", "database");
if ($mysqli->connect_errno) {
echo "連接失敗";
exit;
}
$sql = "SELECT * FROM Table WHERE column_name = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $value);
$value = "search_value";
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row["column_name"];
}
$result->close();
$stmt->close();
$mysqli->close();
在預處理語句中,參數用“?”表示,使用bind_param()方法將參數綁定到語句中。
五、事務處理
MySQLi擴展支持事務處理。事務處理可以保證多條SQL語句操作MySQL數據庫的原子性和一致性,如果其中一條SQL語句失敗,整個事務將被回滾。
事務處理的使用方法如下:
$mysqli = new mysqli("localhost", "root", "password", "database");
if ($mysqli->connect_errno) {
echo "連接失敗";
exit;
}
$mysqli->begin_transaction();
$sql1 = "INSERT INTO Table (column1, column2) VALUES (?, ?)";
$stmt1 = $mysqli->prepare($sql1);
$stmt1->bind_param("ss", $value1, $value2);
$value1 = "value1";
$value2 = "value2";
$stmt1->execute();
$stmt1->close();
$sql2 = "UPDATE Table SET column1 = ? WHERE column2 = ?";
$stmt2 = $mysqli->prepare($sql2);
$stmt2->bind_param("ss", $value3, $value2);
$value3 = "value3";
$stmt2->execute();
$stmt2->close();
$mysqli->commit();
$mysqli->close();
在事務處理中,使用begin_transaction()方法開始事務處理,使用commit()方法提交事務處理,如果出現錯誤則使用rollback()方法回滾事務。
六、總結
MySQLi擴展是PHP操作MySQL數據庫常用的擴展程序,它提供了面向過程和面向對象兩種使用方法,支持預處理語句和事務處理,使用MySQLi可以使操作MySQL數據庫更加簡單、高效和安全。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/154502.html
微信掃一掃
支付寶掃一掃