PHP PDO fetch возвращает FALSE, когда записи не найдены И при сбое

Метод fetch () PDO возвращает значение FALSE как при отсутствии записей, так и при сбое (например, когда что-то пойдет не так в отношении доступа к базе данных).

Мне нужно уметь различать две ситуации и обрабатывать каждый из них следующим образом:

  • для отображения сообщения пользователю, когда записи не найдены и
  • выбросить исключение при сбое.

Итак, мой вопрос: есть ли способ правильно обработать результат?

Спасибо за ваше время.

PS: Я бы ожидал получить пустой массив в результате, когда записи не найдены, а значение FALSE если что-то пойдет не так. Как и в случае метода fetchAll () .


ОБНОВИТЬ:

Метод PdoStatement::fetch исключения при PdoStatement::fetch , а не FALSE . Такой случай продемонстрирован в моем ответе:

  • Имитировать ситуацию с отказом PDO

В заключение, как уже сказал @ pucky124, дифференциация легко достигается:

  • PDOStatement::fetch возвращает FALSE если записи не найдены.
  • PDOStatement::fetch исключает исключения при сбое.