我有這個問題,讓我發瘋。我想要的只是檢查一個錯誤的查詢,如果是的話顯示錯誤,否則運行查詢。PHP PDO檢查mysql錯誤
我有以下的幾乎是(因爲它運行插入查詢兩次)工作
[..]
$dbdata = new mySQLAccessData();
$db = new PDO($dbdata->hostname,$dbdata->username,$dbdata->password);
$defaults = new Defaults();
[..]
if(!$db->exec($sql)){
echo($defaults->throwError('MySql error',implode(":",$db->errorInfo())));
}else{
$db->exec($sql);
$defaults->writeLog($table,$db->lastInsertId(),'add');
}
我試過無數的事情(還有其他的方法try(){}catch(){}
),但不只是上面的代碼工作。它顯示我想要的方式的錯誤,並且只有當發生錯誤時,但運行兩次exec()
...
有人可以幫我解決嗎?
在這裏閱讀http://php.net/manual/en/class.pdoexception.php –
爲什麼不把'$ db-> exec($ sql)'的結果賦值給一個變量。 '$ result = $ db-> exec($ sql);'。然後在'if($ result)'中使用'$ result'的值。 –