setAttribute будет заставлять PDO выдавать ошибки или исключения - самое позднее, когда вы выполняете запрос.
Для эмулированных подготовленных выписок регистрация в prepare()
отсутствует:
Эмулированные подготовленные операторы не связываются с сервером базы данных, поэтому PDO :: prepare () не проверяет оператор.
Но в execute()
будет один, когда запрос будет отправлен на сервер.
Однако драйвер mySQL поддерживает встроенные операторы начиная с mySQL 4.1, так что это не должно применяться. Использование
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
должен вызвать исключение для используемого вами запроса.