首頁  >  文章  >  後端開發  >  為什麼 MySQLi 的「query()」方法在使用「COUNT(*)」時會傳回意外的行計數?

為什麼 MySQLi 的「query()」方法在使用「COUNT(*)」時會傳回意外的行計數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-07 06:55:03564瀏覽

Why Does MySQLi's `query()` Method Return an Unexpected Row Count When Using `COUNT(*)`?

MySQLi 的查詢方法產生意外的行計數

嘗試使用COUNT(*) 函數檢索MySQL 表的行計數並且MySQLi 物件的query() 方法,您可能會遇到意外結果,其中傳回的行數始終為1。這可能與使用 phpMyAdmin 等工具執行相同查詢時的正確結果不同。

理解Issue

MySQLi_Result 物件的 num_rows 屬性反映了執行查詢傳回的結果集中的行數。但是,當使用 COUNT(*) 函數時,結果是包含計數值的單行,而不是像常規查詢結果那樣的多行。

正確的方法

要使用 MySQLi 取得正確的計數值,您需要從 MySQLi_Result 物件中取得單一結果行並從該行擷取計數值。這可以使用 fetch_row() 方法來實現,該方法從結果集中的第一行傳回列值數組。

以下範例示範了正確的方法:

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
$count = $row[0];
echo 'Row count: ', $count;

此程式碼從第一行擷取計數值並將其列印出來。

以上是為什麼 MySQLi 的「query()」方法在使用「COUNT(*)」時會傳回意外的行計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn