我對MySQLi非常熟悉,並且正在嘗試PDO,我聽說它更好。我正在閱讀教程目前here。他們說PDO在設置PDO :: ERRMODE_EXCEPTION時拋出一個異常,並且我們意外地在查詢時發生了錯誤(例如,輸入錯誤,DELECT而不是SELECT)。我輸入了相同的錯誤查詢以查看本地環境中的錯誤和異常消息。我在32位Windows 7個人電腦上安裝了最新的WAMP,安裝了PHP 5.5,MySQL 5.6和Apache 2.4.9,但沒有得到我期待的結果,沒有發生任何異常。我嘗試了教程中發佈的相同代碼:PDO不會在錯誤的SQL查詢上拋出異常
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
# UH-OH! Typed DELECT instead of SELECT!
$DBH->prepare('DELECT name FROM people');
}
catch(PDOException $e) {
echo "I'm sorry, Dave. I'm afraid I can't do that.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
沒有PDOError.txt,沒有錯誤消息。教程或我的環境有問題嗎?或者有些情況下PDO無法拋出異常?我有爲MySQL安裝的PDO驅動程序。
它可能失敗,因爲該查詢永遠不會被執行,正在等待進一步的指示。執行它並查看它是否拋出異常。 –
$ DBH-> query('DELECT name FROM people');將執行查詢 –
猜猜弗雷德,你是絕對正確的。執行它的工作。非常感謝。 –