我正在轉換一箇舊的mysql_X站點與PDO一起工作,到目前爲止,這麼好(我認爲)。然而,我對計算查詢結果的可靠性有疑問。使用count()來計算來自PHP中PDO的結果?
目前,我就擁有了一切準備像這樣(我已經刪除了try/catch語句錯誤代碼,以使這更易於閱讀):
$stm = $db->prepare("SELECT COUNT(*) FROM table WHERE somevar = '1'");
$stm->execute();
$count = $stm->fetchColumn();
if ($count > 0){
$stm = $db->prepare("SELECT * FROM table WHERE somevar = '1'");
$stm->execute();
$result = $stm->fetchAll();
}
有可能是愚蠢的問題,做這種方式,我邀請你告訴我是否有,但我的問題是關於減少數據庫查詢。我注意到,如果我先刪除第一條語句,然後單獨運行第二條語句,然後使用PHP的count()來計算結果,但我似乎仍然得到可靠的行數,只有一個查詢,如下所示:
$stm = $db->prepare("SELECT * FROM table WHERE somevar = '1'");
$stm->execute();
$result = $stm->fetchAll();
$count = count($result);
if ($count > 0){
//do whatever
}
這樣做有沒有什麼陷阱呢?它可靠嗎?我的PDO有沒有明顯的錯誤?謝謝您的幫助!
您是否試過'num_rows'? – Kermit
我還沒有試過num_rows。我已經嘗試過rowCount,它也可以工作,但我已經讀過,不建議在SELECT查詢中使用它,因爲結果可能並不總是可靠的。 – Marty