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

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

Mary-Kate Olsen
發布: 2024-11-07 06:55:03
原創
627 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板