【问题标题】:Can I safely ignore MySQL error HY000 with error code 00000我可以安全地忽略错误代码为 00000 的 MySQL 错误 HY000
【发布时间】:2011-02-18 16:50:41
【问题描述】:

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

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

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

  • 错误信息():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 异常似乎完全是错误的。

怎么办?我是否必须检查“这是一个插入,没有结果集所以忽略那些异常”(因为我没有单独的插入、选择、更新等方法)。

【问题讨论】:

  • 除非规则不同,因为它是插入的一部分,否则您不能使用占位符来表示列/表名...
  • 那个?在 SELECT 中用于插入标量值(在本例中为 ID。

标签: php mysql pdo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2014-04-23
    • 2017-12-03
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多