#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:
если ваш ЗАПРОС неверен и не выполнен, то в ваших таблицах ничего не изменится..не волнуйтесь