当然,我可能做错了什么,但我真的不明白为什么和怎么做。
我想禁用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
来确定自动提交的当前状态。