[英]PHP PDO - Num Rows
PDO顯然無法計算從select查詢返回的行數( mysqli
具有num_rows
變量)。
有沒有辦法做到這一點,沒有使用count($results->fetchAll())
?
根據手冊,有一個PDOStatement->rowCount
方法; 但不應該使用(引用) :
對於大多數數據庫,
PDOStatement::rowCount()
不返回受SELECT
語句影響的行數。
相反,使用PDO::query()
發出帶有與預期SELECT
語句相同的謂詞的SELECT COUNT(*)
語句,然后使用PDOStatement::fetchColumn()
來檢索將返回的行數。
然后,您的應用程序可以執行正確的操作
如果你已經有了一個記錄集,並想知道其中有多少行,你將不得不使用fetch*
方法之一獲取數據; 並使用計數 - 就像你建議的那樣。
雖然PDO顯然有辦法計算從mysql的select查詢返回的行數,但更重要的是首先沒有使用這樣的函數。
每次你有想法使用rowCount()進行SELECT查詢時,它將是多余的甚至是有害的。 請參閱PDO rowCount() :
另一個選項可能更接近mysqli
的num_rows
變量和相應的C API函數mysql_num_rows()
。 是使用MySQL函數FOUND_ROWS()
返回相同的信息,而不必再次計算結果中的所有記錄。
例:
$pdoDB->query('SELECT FOUND_ROWS()')->fetchColumn()
最簡單的
$stmt = $datalink->query('SELECT * FROM projects');
$rows = $stmt->fetchAll();
$num_rows = count($rows);
echo $num_rows ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.