Транзакции не завершены

#php #mysql #innodb

#php #mysql #innodb

Вопрос:

В php-скрипте, если мой запрос неверен, выйдите из программы с помощью штампа. Мой вопрос в том, если они находятся в середине транзакции, чем она закончится? Будет ли выполняться неявный ОТКАТ?

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

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

Комментарии:

1. Пожалуйста, напишите свое последнее предложение на английском

2. Опубликованный вами пример не работает и не выполняет транзакцию

Ответ №1:

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

Ответ №2:

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

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

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

Ответ №3:

если ваш ЗАПРОС неверен и не выполнен, то в ваших таблицах ничего не изменится..не волнуйтесь