开发者

PDO errorCode doesn't work with prepare

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

$dbError gets the syntax error information.

If the same is used for prepared statement it doesn't return any error after prepare.

This code is from 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 doesn't work in this way. I use

$dbQuery = $this->dbal->prequery($sql);
$dbError开发者_StackOverflow中文版 = $dbQuery->errorInfo(); // $this->dbal->errorInfo(); doesn't work, too.


The manual says:

If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object. If the database server cannot successfully prepare the statement, PDO::prepare() returns FALSE or emits PDOException (depending on error handling).

That means that you don't have an object when it fails: you have a boolean FALSE.

Try changing the PDO error handling to PDO::ERRMODE_EXCEPTION.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜