PDO errorCode不适用于prepare

时间:2011-06-27 17:36:54

标签: php pdo prepare

$sql = "dSELECT * FROM users";
$dbQuery = $this->dbal->query($sql);
$dbError = $this->dbal->errorInfo();

$ dbError获取语法错误信息。

如果准备语句使用相同的语句,则在准备后不会返回任何错误。

此代码来自php.net

<?php
/* Provoke an error -- bogus SQL syntax */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
    echo "\nPDO::errorInfo():\n";
    print_r($dbh->errorInfo());
}

ErrorInfo不能以这种方式工作。 我用

$dbQuery = $this->dbal->prequery($sql);
$dbError = $dbQuery->errorInfo(); // $this->dbal->errorInfo(); doesn't work, too.

1 个答案:

答案 0 :(得分:0)

manual说:

  

如果数据库服务器成功   准备声明,PDO :: prepare()   返回PDOStatement对象。如果   数据库服务器无法成功   准备声明,PDO :: prepare()   返回FALSE或发出PDOException   (取决于错误处理)。

这意味着失败时没有对象:你有一个布尔值FALSE

尝试将PDO error handling更改为PDO::ERRMODE_EXCEPTION