Транзакции не завершены - PullRequest
3 голосов
/ 16 апреля 2011

В скрипте php, если мой запрос неверен, выйдите из программы с помощью die.Мой вопрос, если они находятся в середине транзакции, что это закончится?Будет ли запускаться неявный ROLLBACK?

mysql_query('BEGIN'); mysql_query('UPDATE ...'); mysql_close();

в этом случае ведет себя как mysql?и используя постоянные соединения?(http://www.php.net/manual/en/function.mysql-pconnect.php#33994)

Ответы [ 3 ]

1 голос
/ 16 апреля 2011

Движок MySQL будет откатывать транзакции при возникновении ошибок или если сеанс по какой-либо причине закрывается до принятия.Сохраняются только зафиксированные транзакции.Подробнее см. Документацию транзакция .

1 голос
/ 16 апреля 2011

Это зависит от того, как вы выполняете транзакцию со стороны PHP.

Если вы используете простую функцию mysql_query для отдельного запуска каждого оператора транзакции и если какой-либо запрос завершается неудачно, транзакция никогда не откатывается.

Если вы создаете транзакцию в хранимой процедуре и вызываете эту хранимую процедуру из PHP. Изменения будут отменены в случае сбоя любого запроса в транзакции.

0 голосов
/ 16 апреля 2011

если ваш QUERY неверен и не выполнен, то в ваших таблицах ничего не изменится ... не беспокойтесь

...