Скорее всего, это связано с неудачной подготовкой.
В зависимости от обработки ошибок, PDO вместо выдачи исключения может просто вернуть false
.
Если сервер базы данных не может успешно подготовить оператор, PDO :: prepare () возвращает FALSE или выдает исключение PDOException (в зависимости от обработки ошибок).
Не совсем уверен, где определено это поведение,если честно ....
Обновление: вот оно .Поведение по умолчанию - молчаливый сбой.Вам необходимо установить PDO::ATTR_ERRMODE
на PDO::ERRMODE_EXCEPTION
для исключений, которые будут повышаться всегда .
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );