使用PDO 進行行計數:最佳化解
在PHP 中使用PDO 擷取行數時,重要的是要考慮基於的最佳方法根據您的要求。雖然出於簡單性而使用 fetchAll() 可能很誘人,但對於大型資料集來說它可能效率低下。
僅適用於行計數
如果您需要行數但不是資料本身,請考慮使用以下查詢:
$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; $result = $con->prepare($sql); $result->execute([$bar]); $number_of_rows = $result->fetchColumn();
此方法使用資料庫的內建計數功能提供準確的行計數,而無需不必要的資料檢索。
對於帶有資料的行計數
如果您同時需要行計數和數據,PDO 提供 PDOStatement::行計數()。但是,此方法可能不適用於所有驅動程式。根據PDO 文件:
「對於大多數資料庫,PDOStatement::rowCount() 不會傳回受SELECT 語句影響的行數。而是使用PDO::query() 發出SELECT COUNT (*) 語句與您想要的SELECT 語句具有相同的謂詞,然後使用PDOStatement::fetchColumn()檢索將要執行的行數"
在這種情況下,您可以使用 fetchAll() 檢索數據,然後使用 count() 確定行數。
範例:使用query()對於行計數
對於沒有任何變數的查詢,可以使用query()而不是prepared語句:
$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); echo $nRows;
透過了解這些最佳化技術,您可以在各種場景下使用PDO 有效檢索行計數。
以上是如何在 PHP 中使用 PDO 最佳化行計數檢索?的詳細內容。更多資訊請關注PHP中文網其他相關文章!