我已将PHP(5.2)与PDO(MysqL 5.1)设置为在发生错误时引发异常:
$pdo = new PDO(...);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
现在,有时会出现一个异常,该异常仅告诉我“ HY000:常规错误”.我试图从PDO中获取更多信息,但是我只能说:
> errorInfo():数组(0 =>’HY000′)
> errorCode():数组(0 =>’00000′)
失败的查询如下所示:
INSERT INTO user_values
SELECT user_id,
attribute_id,
?,
value
FROM user_values
WHERE user_id = ?
AND set_id = ?
我确保所有游标均已正确关闭($stmt-> closeCursor()).在我的语句上调用fetchAll()时会引发异常.经过一番搜索后,我发现有些人只是忽略了此错误,但是消除PDO异常似乎是完全错误的.
该怎么办?我是否必须检查“这是一个INSERT,没有结果集,所以请忽略那些异常”(因为我没有用于INSERT,SELECT,UPDATE等的单独方法).
解决方法: