当然,我可能做错了什么,但我真的不明白为什么和怎么做。
我想禁用php脚本中的自动提交。这是因为我的个人php mysql框架是这样工作的。但无论如何,自动提交无法关闭。我将mysql I与engine=InnoDB表一起使用,并尝试了Mysqli::autocommit功能以及全局和会话的mysql语句。
所有的结果都是一样的:autocommit仍然打开。没有错误说我使用了不正确的语句返回。查询返回true,尝试提交,返回true。
我有什么遗漏吗?自动提交必须在运行时关闭,因为将在其上运行的主机不允许我在服务器设置中禁用它:)

最佳答案

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_autocommit
默认情况下,客户端连接以设置为1的autocommit开始。要使客户端以默认值0开头,请设置服务器的系统变量:

SET GLOBAL init_connect='SET autocommit=0';

还可以在命令行或选项文件中设置init_connect变量。要使用选项文件设置变量,请包含以下行:
[mysqld]
init_connect='SET autocommit=0'

同时查看下面的link,有一种返回布尔值的方法,该布尔值将指示commit是否已成功打开/关闭。
还可以使用init_connect来确定自动提交的当前状态。

10-06 05:26