交易未完成

时间:2011-04-16 10:05:24

标签: php mysql innodb

如果我的查询不正确,请在PHP脚本中退出程序。 我的问题是,如果他们处于交易中间,它会结束吗?会运行隐式ROLLBACK吗?

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

在这种情况下表现得像mysql?并使用持久连接? (http://www.php.net/manual/en/function.mysql-pconnect.php#33994)

3 个答案:

答案 0 :(得分:1)

MySQL引擎将在发生错误时回滚事务,或者如果会话在提交之前因任何原因而关闭。仅保留已提交的事务。有关详细信息,请参阅transaction文档。

答案 1 :(得分:1)

这取决于您如何从PHP端执行事务。

如果您使用简单的mysql_query函数分别运行每个事务语句,并且如果任何查询失败,则事务永远不会回滚。

如果要在存储过程中创建事务并从PHP调用该存储过程。如果任何查询在事务中失败,则将回滚更改。

答案 2 :(得分:0)

如果您的QUERY错误且未执行,那么表格中的任何内容都不会更改..不用担心