PHP mysqli查詢詳解
在PHP開發(fā)中,經(jīng)常需要與數(shù)據(jù)庫進(jìn)行交互以實(shí)現(xiàn)數(shù)據(jù)的存取和管理。mysqli是PHP的一個擴(kuò)展庫,它提供了強(qiáng)大的數(shù)據(jù)庫查詢功能。本文將詳細(xì)介紹mysqli查詢的相關(guān)知識。
連接到數(shù)據(jù)庫
在使用mysqli進(jìn)行查詢之前,需要先連接到數(shù)據(jù)庫。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 創(chuàng)建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢測連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
echo "連接成功";
?>
連接成功后,就可以開始查詢操作了。
查詢數(shù)據(jù)
mysqli查詢數(shù)據(jù)的函數(shù)主要有三個:query、prepare和bind_param。
query函數(shù)
query函數(shù)是mysqli中用于執(zhí)行SQL語句的函數(shù)。示例:
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 輸出數(shù)據(jù)
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
}
} else {
echo "0 結(jié)果";
}
以上代碼查詢了users表中的所有數(shù)據(jù),并將結(jié)果輸出到頁面上。
prepare函數(shù)和bind_param函數(shù)
prepare函數(shù)和bind_param函數(shù)可以用來實(shí)現(xiàn)預(yù)處理語句,從而提高查詢的效率和安全性。
$stmt = $conn->prepare("SELECT * FROM users WHERE name=? AND age=?");
$stmt->bind_param("si", $name, $age);
$name = "John";
$age = 25;
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
// 輸出數(shù)據(jù)
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
}
} else {
echo "0 結(jié)果";
}
以上代碼查詢了users表中name為John,age為25的數(shù)據(jù)。其中,prepare函數(shù)用于預(yù)處理SQL語句,并將其綁定到一個stmt對象上;bind_param函數(shù)用于為綁定的參數(shù)設(shè)定具體的值;execute函數(shù)用于執(zhí)行查詢,并獲取結(jié)果。
關(guān)閉連接
在查詢完畢后,需要關(guān)閉與數(shù)據(jù)庫的連接。
$conn->close();
以上代碼即可關(guān)閉與數(shù)據(jù)庫的連接。
總結(jié)
本文通過介紹mysqli查詢數(shù)據(jù)的相關(guān)知識,讓讀者了解到了如何使用mysqli進(jìn)行數(shù)據(jù)庫查詢操作。通過學(xué)習(xí)本文內(nèi)容,讀者可以掌握mysqli查詢語句的基本用法,并能夠更加高效地進(jìn)行開發(fā)工作。