Postgres PDOStatement :: errorInfo()驱动程序特定的错误消息在查询中持续存在

时间:2017-11-24 06:43:11

标签: php postgresql pdo php-pgsql

我遇到了以下奇怪的行为:

//assume $dbh is a valid handle
$stmt = $dbh->prepare("UPDATE mytable SET myintcol = :myintval");

$stmt->bindValue(':myintval', 'notanint', PDO::PARAM_INT);
$stmt->execute();
print_r($stmt->errorInfo());

$stmt->bindValue(':myintval', 123, PDO::PARAM_INT);
$stmt->execute();
print_r($stmt->errorInfo());

这将输出:

Array ( [0] => 22P02 [1] => 7 [2] => ERROR: invalid input syntax for integer: "notanint" ) 
Array ( [0] => 00000 [1] => 7 [2] => ERROR: invalid input syntax for integer: "notanint" ) 

虽然第二次执行成功,如00000 SQLSTATE错误代码所示,并通过检查实际表的更新,由于某种原因,该数组的元素2,文档调用"特定于驱动程序错误消息",保留上一条消息。这似乎明显与PDOStatement::errorInfo()http://php.net/manual/en/pdostatement.errorinfo.php)的文档相矛盾,后者声明它将"获取与语句句柄上一次操作相关的扩展错误信息& #34;

有没有人有任何解释?它不是一个表明它只是一个错误。

0 个答案:

没有答案