我有这个问题,让我发疯。我想要的只是检查一个错误的查询,如果是的话显示错误,否则运行查询。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'的值。 –