在PHP的mysqli中,提交或回滚是否会在impliclitly中自动提交?
发布时间:2020-12-13 16:18:31 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 mysqli类在 PHP中进行事务,我发现autocommit()的文档非常不完整. 我从示例中推断,将autocommit设置为false会隐式执行’begin transaction’.它是否正确? 更重要的是,我没有看到autocommit被重置为true的位置,我认为它应该在事务完成之后.调用com
我正在使用
mysqli类在
PHP中进行事务,我发现autocommit()的文档非常不完整.
我从示例中推断,将autocommit设置为false会隐式执行’begin transaction’.它是否正确? 更重要的是,我没有看到autocommit被重置为true的位置,我认为它应该在事务完成之后.调用commit()或rollback()方法时会自动发生这种情况吗? 解决方法
它不会隐式执行START TRANSACTION,因为它执行ad-hoc事务:
http://dev.mysql.com/doc/refman/5.0/en/commit.html
使用autocommit(false)时,无论何时执行写入查询,都必须执行COMMIT才能在磁盘上永久更新.从那时起,对于该连接中的所有查询都是如此.使用autocommit(true),如果使用START TRANSACTION,运行更新,运行COMMIT,然后运行另一个更新,将立即应用这两个更新(即不需要第二个COMMIT). autocommit永远不会重置为true,但它只是按会话设置(MySQL会话,而不是PHP会话). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |