【发布时间】:2011-09-23 17:03:40
【问题描述】:
$sql = "dSELECT * FROM users";
$dbQuery = $this->dbal->query($sql);
$dbError = $this->dbal->errorInfo();
$dbError 获取语法错误信息。
如果对prepared语句使用相同的语句,prepare后不会返回任何错误。
此代码来自 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.
【问题讨论】:
-
你试过this answer吗?
-
试过了,但没有一个奏效。实际上,默认情况下是静默模式,它适用于 dbal->query。
-
当我使用: $this->dbal->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); var_dump(\PDO::ATTR_ERRMODE);每次返回 3.SILENT、Warning 或 Exception 它返回 3.