在 PHP 中,num_rows
是一個屬性,它表示查詢結果集中的行數。當你使用 mysqli
或 PDO
擴展與數據庫進行交互時,可以使用 num_rows
來確定查詢返回了多少行數據。
以下是使用 num_rows
的兩種方法:
1. 使用 MySQLi 擴展:
<?php
// 連接數據庫
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 查詢數據
$sql = "SELECT id, name FROM myTable";
$result = $conn->query($sql);
// 使用 num_rows 計算結果集中的行數
if ($result->num_rows > 0) {
// 輸出每行數據
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 結果";
}
// 關閉連接
$conn->close();
?>
2. 使用 PDO 擴展:
<?php
// 連接數據庫
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
// 創建連接
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 設置 PDO 錯誤模式為異常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 查詢數據
$stmt = $conn->prepare("SELECT id, name FROM myTable");
$stmt->execute();
// 使用 rowCount() 計算結果集中的行數
if ($stmt->rowCount() > 0) {
// 設置結果集為關聯數組
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
// 輸出每行數據
foreach($stmt->fetchAll() as $row) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 結果";
}
} catch(PDOException $e) {
echo "連接失敗: " . $e->getMessage();
}
// 關閉連接
$conn = null;
?>
在這兩個示例中,我們首先連接到數據庫,然后執行一個查詢以從表中獲取數據。接著,我們使用 num_rows
(對于 MySQLi)或 rowCount()
(對于 PDO)來計算結果集中的行數。如果行數大于 0,則遍歷并輸出每一行數據。最后,記得關閉數據庫連接。