PDO errorCode не работает с подготовкой - PullRequest
0 голосов
/ 27 июня 2011
$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 голосов
/ 27 июня 2011

руководство говорит:

Если сервер базы данных успешно готовит заявление, PDO :: prepare () возвращает объект PDOStatement. Если сервер базы данных не может успешно подготовить заявление, PDO :: prepare () возвращает FALSE или выдает исключение PDOException (в зависимости от обработки ошибок).

Это означает, что у вас нет объекта, когда он выходит из строя: у вас есть логическое значение FALSE.

Попробуйте изменить обработку ошибок PDO на PDO::ERRMODE_EXCEPTION.

...