我可以安全地忽略MySQL错误HY000,错误代码为00000

时间:2011-02-18 16:50:42

标签: php mysql pdo

我已经使用PDO(MySQL 5.1)设置了PHP(5.2),以便在发生错误时抛出异常:

$pdo = new PDO(...);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

现在,我有时会遇到一个只会告诉我“HY000:一般错误”的异常。我试图从PDO中获取更多信息,但我只能说:

  • errorInfo():array(0 => 'HY000')
  • errorCode():array(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等方法)。

1 个答案:

答案 0 :(得分:5)

错误代码00000表示成功(或者说没有发现错误)。