在PHP 中,使用PDO(PHP Data Objects)連接數據庫時, PDOStatement::rowCount是一個常用的函數,它通常用於返回上一條SQL 查詢中受影響的行數。但是,對於SELECT查詢,很多開發者會錯誤地將rowCount用作獲取查詢結果數量的工具。在這篇文章中,我們將詳細討論為什麼不應該誤用PDOStatement::rowCount來獲取SELECT查詢的結果數量。
首先,我們需要了解rowCount的工作原理。 PDOStatement::rowCount函數返回的是自上次執行的SQL 語句以來受影響的行數。在INSERT 、 UPDATE或DELETE語句中, rowCount返回的是受這些語句影響的行數。
然而, rowCount在SELECT查詢中的表現就比較複雜,取決於使用的數據庫驅動和具體的查詢執行方式。例如:
在某些數據庫驅動(例如MySQL)中, rowCount對於SELECT查詢可能不返回任何有意義的值,尤其是在查詢結果沒有進行任何實際的數據提取時