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