Хон Гиль Дон
Новичок
PDO не видит ошибок MySQL, в результате не отрабатывают транзакции
У меня наблюдается странная ситуация - PDO не реагирует на ошибки MySQL - соответственно пропадает возможность обеспечивать целлостность изменений с помощью транзакций.
К примеру следующий код:
генерит следующие запросы к базе:
В результате в базе остаётся результат только первого запроса, соответственно не обеспечиваыется целостность изменений под транзакцией.
Чем тут можно делу помочь?
У меня наблюдается странная ситуация - PDO не реагирует на ошибки MySQL - соответственно пропадает возможность обеспечивать целлостность изменений с помощью транзакций.
К примеру следующий код:
PHP:
try {
$db = new PDO("...my DSN...");
$db->beginTransaction();
$ins1 = $db->exec("INSERT INTO test (test1, test2) VALUES (1, 1)");
$ins2 = $db->exec("INSERT INTO test (test1, test2) VALUES (1, 'incorrect value')");
$db->commit();
}
catch(PDOException $e)
{
$db->rollBack();
echo 'Error:'.$e->getMessage();
}
echo ">>$ins1 and $ins2<<";
и такой вывод:100617 14:40:25 1 Connect root@localhost on test_db
1 Query START TRANSACTION
1 Query INSERT INTO tst (tst1, tst2) VALUES (1, 0)
1 Query INSERT INTO tst (tst1, tst2) VALUES (0, 'incorrect value')
1 Query COMMIT
1 Quit
хотя второй инсерт заведомо ошибочный и долже приводить к генерации PDO исключения и последующему rollback.>>1 and <<
В результате в базе остаётся результат только первого запроса, соответственно не обеспечиваыется целостность изменений под транзакцией.
Чем тут можно делу помочь?