如果查询使用多个连接,mysql事务会工作吗?

Tud*_*dor 2 php mysqli transactions

所以这里......

//我开始交易$ mysqli = new mysqli(...);

//启动事务$ mysqli-> autocommit(FALSE);

  • 这是一个选择准备好的stmt,它有自己的数据库连接
  • 这是一个插件准备好的stmt,它有自己的数据库连接
  • 这是一个用上面的db conn准备的slect
  • 插入新的conn
  • 插入新的conn
  • 插入新的conn

如果每个准备好的查询都返回true,它将($ mysqli-> commit())else $ mysqli-> rollback

我不知道交易将自动提交的原因

我已经完成了3个多个连接的一些事务并且它们回滚...这个没有...是不是mysql支持一个具有单个连接查询的事务?

解决了...如果来自不同表的查询是相互依赖的,就像我的情况一样,并且您需要强大的数据访问安全性,请为您打开的每个连接设置autocommit为false,为每个失败的bussness逻辑设置var为false,如果有任何失败,回滚每一组查询,否则comit evry查询...是的,每个连接都执行事务,当我说mysql做了一些多个conn事务的回滚时,还有其它管理回滚的东西

重新编辑:ofc这不会像正常的事务那样工作......如果系统崩溃,数据将被存储,直到崩溃的那一刻

der*_*ert 7

事务内的所有查询必须位于同一连接上.如果您有三个连接,则打开三个事务(假设它们未处于自动提交模式).

如果您确实需要分布式事务,则必须使用MySQL的XA事务 - 但只有在处理多个数据库中的事务(或者,某些其他非数据库事务)时才应该真正需要.