php - 为什么 RedBean 的交易功能不起作用?

标签 php mysql transactions redbean

我刚刚注意到,在使用 PHP 和 RedBean(以及一个事务)将一些数据导入 MySQL 数据库时,我可以看到在导入运行时行数在增加。为了证实我的怀疑,我在导入函数的末尾将 R::commit() 更改为 R::rollback() 并尝试导入。事实上,即使我调用回滚,数据也已导入并永久保存。

我不知道为什么交易没有完成它的工作,也不知道从哪里开始寻找,因此出现了这个问题。 Here's the import part of the function .让我说明一下,除了事务不起作用之外,导入功能运行良好,因此无需剖析它。

感谢所有假设

最佳答案

啊哈!知道了。急于证明@furier 是错误的,我查找了 RedBean transaction documentation并偶然发现了一个非常有用的注释:

Many databases automatically commit after changing schemas, so make sure you test your transactions after R::freeze(true); !

总而言之,如果您没有使用 R::freeze(true); 破坏应用程序中的所有事务操作来卡住 RedBean,某些数据库可能会自动提交

关于php - 为什么 RedBean 的交易功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10851471/

相关文章:

php - 一次打印数组的各个部分

php - 调用非对象上的成员函数execute()

java - 即使在声明回滚之后,Spring 声明式事务回滚也会失败

django - transaction.atomic() 的失败模式有哪些?

php - 自动递增跳过 ids

PHP - 从时间戳所在位置选择数据

php - 在 php 中获取类型返回 "object"而不是对象类型

php - 无法让按钮附加到文本区域

mysql - 文件存储在 Ruby/Rake/Grape 服务器上

sql - 我可以使用 SQL Server 打开可停止事务吗?