我目前已切換到使用PDO,但在處理異常時遇到問題。連接是正確的,查詢工作完美,但是當我犯了故意的錯誤時,錯誤不會按我的預期處理。PDO PHP未捕獲異常
我已將我的查詢中表的名稱更改爲不存在的表。從下面看到的代碼,我希望頁面打印出'數據庫錯誤',但相反得到可怕的橙色錯誤說...
'帶有消息'SQLSTATE [42S02]的未捕獲異常'PDOException':基表或查看未找到:1146第46行'C:\ wamp \ www \ website \ functions.php中不存在表'test.post''
這是連接數據庫時的代碼...
$hostname = 'localhost';
$username = '';
$password = '';
try{
$dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
print ("Database Error");
}
我犯了一個錯誤還是有不同的方式來處理PDO錯誤?
如果您只是嘗試捕獲常規的'Exception'而不是'PDOException',會發生什麼? – Crontab 2012-04-12 13:53:47
查詢在哪裏?這就是例外的地方,而不是連接點。 – Paystey 2012-04-12 13:55:44
你在名字空間工作嗎?常見的錯誤是你需要趕上'\ YourException'! – Nanne 2012-04-12 13:55:58