從關於intertubes的教程中,我學到了一些關於PDO查詢的知識。本教程使用try/catch和查詢基本上是這樣構造的:PDO錯誤處理
try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $user, $pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$stmt = $dbh->prepare("UPDATE users yada yada yadda");
$stmt->bindParam(':param1', $param1, PDO::PARAM_INT);
$stmt->bindParam(':param2', $param2, PDO::PARAM_INT);
$stmt->execute();
}
catch(PDOException $e)
{
echo $e->getMessage();
}
這當然回聲mysql錯誤在屏幕上。並不是說我打算進行糟糕的查詢,但我不喜歡在屏幕上回顯錯誤的想法,弄清楚如果攻擊者試圖誘發所述錯誤並嘗試向他們學習某些東西。
有沒有更好的方法來做到這一點,以便任何錯誤轉到日誌文件,或者我真的沒有什麼可怕的,因爲綁定參數消除了任何SQL注入的風險?
http://php.net/manual/en/function.error-log.php – CBroe 2013-05-07 08:38:45