暴露MySQLi 行計數中的缺陷
為了確定表的行數,已實現了一個程式碼片段:
$result = $db->query("SELECT COUNT(*) FROM `table`;"); $count = $result->num_rows;為了確定表的行數,已實現了一個程式碼片段:
但是,無論實際情況如何,計數值始終保持為1表中的行數。
$result = $db->query("SELECT COUNT(*) FROM `table`"); $row = $result->fetch_row(); echo '#: ', $row[0];經過進一步偵錯,問題變得明顯:執行的查詢傳回一筆記錄,其中計數值儲存在第一列。因此,要存取結果,必須檢索記錄:即使透過 phpMyAdmin 執行查詢,這種方法也能保證表中正確的行數。
以上是為什麼 MySQLi 的 num_rows 在計算行數時會回傳 1?的詳細內容。更多資訊請關注PHP中文網其他相關文章!