В поисках решения моего предыдущего вопроса я столкнулся со странным фактом - PDO prepare () с несколькими запросами не работает правильно внутри транзакции. Вы не получите ни предупреждения, ни исключения, ничего - только молчание и отсутствие коммита / отката.
Кроме того, вы не получите исключения, даже если некоторые запросы, кроме первого, содержат ошибки. Хотя, если первый запрос содержит ошибку, вы получите исключение, как и ожидалось.
Если транзакции нет, все работает нормально.
Если вы поместите несколько операторов prepare () (с одним запросом в каждой) внутри одной транзакции - опять все работает правильно.
Я читал, что MySQL не поддерживает подготовленные операторы с несколькими запросами, но дело в том, что PDO по умолчанию не обрабатывает реальные подготовленные операторы MySQL, а только эмулирует их.
Я провел целый день, пытаясь найти какой-нибудь документ, описывающий эту проблему, но мне не удалось.
Кто-нибудь знает, действительно ли это ошибка PDO?