在使用PHP 操作MySQL 數據庫時,我們常常需要知道某個查詢語句返回了多少行數據。這在分頁、數據校驗等場景中尤為常見。本文將介紹如何通過mysqli_result::num_rows方法來獲取查詢結果的行數。
mysqli_result::num_rows是一個面向對象的屬性,用於獲取查詢結果集中行的數量。它只能用於SELECT查詢,並且在查詢成功且結果集中包含數據時使用。
$result->num_rows;
其中$result是mysqli::query()執行後返回的mysqli_result對象。
以下是一個簡單的PHP 示例,演示如何使用mysqli_result::num_rows獲取查詢結果的行數:
<?php
// 數據庫連接配置
$host = 'localhost';
$user = 'root';
$password = 'your_password';
$database = 'test_db';
// 創建數據庫連接
$mysqli = new mysqli($host, $user, $password, $database);
// 檢查連接是否成功
if ($mysqli->connect_error) {
die('連接失敗: ' . $mysqli->connect_error);
}
// 定義查詢語句
$sql = "SELECT * FROM users WHERE status = 'active'";
// 執行查詢
$result = $mysqli->query($sql);
// 檢查查詢是否成功
if ($result) {
// 獲取行數
echo "共有 " . $result->num_rows . " 個激活用戶。";
// 釋放結果集
$result->free();
} else {
echo "查詢出錯: " . $mysqli->error;
}
// 關閉數據庫連接
$mysqli->close();
?>
num_rows只能用於SELECT類型的查詢,對於INSERT 、 UPDATE或DELETE無效。
如果使用的是mysqli::store_result()獲取結果集,則同樣可以通過num_rows獲取行數。
若數據量較大,推薦通過SQL 語句SELECT COUNT(*)來統計總行數,提高性能。
PHP 官方文檔: https://www.php.net/manual/zh/mysqli-result.num-rows.php
示例在線演示地址: https://m66.net/demo/num_rows_example
通過本文的介紹,相信你已經掌握瞭如何通過mysqli_result::num_rows獲取MySQL 查詢結果的行數。在日常開發中,善用這一屬性能夠幫助你更高效地處理數據。
你還想了解mysqli 的其他常用方法嗎?