加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在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会话).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读