2013-07-20 61 views
0

我一直在使用PDO的時間已經很長一段時間了,但我想知道我是否檢查錯誤太多或者不夠。這是我的東西,一般的外觀:PHP PDO工作流程

$STH = $DBH->prepare("SELECT something FROM table WHERE field=:field AND field2=:field2"); 
$STH->bindParam(":field",$field); 
$STH->bindParam(":field2",$field2); 
if($STH->execute()){ 
    if($STH->rowCount() == 1){ 
     echo "This is what is returned"; 
    }else{ 
     echo "Something went wrong."; 
    } 
}else{ 
    echo "Something went wrong."; 
} 

當然的$STH->rowCount() -check要看什麼我期待。例如,當用戶登錄時,只能使用該用戶名找到一個結果。當然,這已經在數據庫中檢查過了,但我再次在這裏再次檢查它。這是否需要?

另外if(STH->execute()) - 檢查我不確定是否真的有必要。什麼是最佳實踐?

回答

1

根據文檔'http://php.net/pdostatement.rowcount',在SELECT語句中使用rowcount是一種糟糕的做法,因爲許多數據庫無法返回受SELECT語句影響的行數。對於檢查用戶,最好使用:

選擇計數(*).....和PDOStatement:執行+ PDOStatement:fetchColumn。

還要記住(STH->的execute()不檢查任何它只是說,你的查詢沒有錯誤執行。