Могу ли я безопасно игнорировать ошибку MySQL HY000 с кодом ошибки 00000 - PullRequest
3 голосов
/ 18 февраля 2011

Я настроил PHP (5.2) с PDO (MySQL 5.1), чтобы выдавать исключения при возникновении ошибки:

$pdo = new PDO(...);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Теперь я иногда получаю исключение, которое говорит мне только "HY000: Общая ошибка". Я пытался получить больше информации из PDO, но все, что я могу сказать, это:

  • errorInfo (): array(0 => 'HY000')
  • errorCode (): array(0 => '00000')

Сбой запроса выглядит следующим образом:

INSERT INTO user_values
SELECT user_id,
       attribute_id,
       ?,
       value 
  FROM user_values 
 WHERE user_id = ? 
   AND set_id = ?

Я убедился, что все курсоры правильно закрыты ($stmt->closeCursor()). Исключение выдается при вызове fetchAll() в моем заявлении. После некоторых поисков я обнаружил, что некоторые просто игнорируют эту ошибку, но кажется совершенно неправильным отклонить исключение PDO.

Что делать? Нужно ли проверять, как «Это INSERT, нет набора результатов, так что игнорируйте эти исключения» (так как у меня нет отдельных методов для INSERT, SELECT, UPDATE, ...).

1 Ответ

5 голосов
/ 18 февраля 2011

код ошибки 00000 означает успешное выполнение (или, вернее, не найдено ошибок)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...