作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 PHP 中使用 mysqli 类进行事务处理,我发现 autocommit() 的文档非常不完整。我从示例中推断,将 autocommit 设置为 false 会隐式执行“开始事务”。这个对吗?更重要的是,我没有看到 autocommit 在哪里重置为 true,我认为它应该在事务完成后重置。这会在调用 commit() 或 rollback() 方法时自动发生吗?
最佳答案
它不会隐式执行START TRANSACTION
,因为它执行临时事务:http://dev.mysql.com/doc/refman/5.0/en/commit.html
使用autocommit(false)
,任何时候执行写入查询都必须COMMIT
才能在磁盘上永久更新。从那时起,对于该连接中的所有查询都是如此。对于 autocommit(true)
,如果您使用 START TRANSACTION
,运行更新,运行 COMMIT
,然后运行另一个更新,两者 更新将立即应用(即不需要第二次 COMMIT
)。
autocommit
永远不会重置为 true
,但它仅在每个 session (MySQL session ,而不是 PHP session )中设置。
关于php - 提交或回滚是否在 PHP 的 mysqli 中隐式打开自动提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585760/
我是一名优秀的程序员,十分优秀!