確定在PHP 中使用PDO 檢索行數的最佳方法仍然是一個有爭議的話題。本文探討了替代方法,為尋求有效解決方案的程式設計師提供指導。
對於不需要存取實際資料的場景,建議使用以資料庫為中心的方法。使用此方法,資料庫執行行計數,僅傳回數值。以下程式碼舉例說明了這種方法:
$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; $result = $con->prepare($sql); $result->execute([$bar]); $number_of_rows = $result->fetchColumn();
或者,PDStatement::rowCount() 可用於在擷取資料本身時取得行計數。此方法與 MySQL 的緩衝查詢(預設啟用)有效配合。
但是,只依賴 PDStatement::rowCount() 並不能保證其他資料庫也能使用。根據PDO 文件:
「對於大多數資料庫,PDOStatement::rowCount() 不會傳回受SELECT 語句影響的行數。」
為了克服此限制,文件建議使用PDO: :query() 發出SELECT COUNT(*) 語句,然後使用PDStatement::fetchColumn()檢索所需的內容
最後,對於沒有變數佔位符的簡單查詢,可以直接使用 PDO::query():
$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); echo $nRows;
以上是在 PHP 中使用 PDO 計算行數的最有效方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!