gpt4 book ai didi

PHP + MySQL - 事务不回滚

转载 作者:行者123 更新时间:2023-11-29 13:42:39 25 4
gpt4 key购买 nike

我正在使用旧式的 mysql_query() 函数来执行事务。即使事务中的查询之一失败,它也不会回滚。我已经调试了受影响的行,它们要么是 0,要么是 1。语法如下:

 $cnx = mysql_connect( .. ); 
mysql_select_db("DB", $cnx);
mysql_query("START TRANSACTION");
mysql_query("BEGIN");

$isrollback = -1;

for (...) // run through query list
{
mysql_query(".... query_i ....");
if(mysql_affected_rows() == 0)
{
$isrollback = 1
}

}

// more queries
if ($isrollback > 0)
mysql_query("ROLLBACK");
else
mysql_query("COMMIT);

最佳答案

您需要使用事务数据库引擎。例如INNODB

您当前使用的MyISAM不支持事务。

这意味着您无法在不更改数据库引擎的情况下启动或回滚事务。

MySQL 给出了如何从 MyISAM to INNODB 转换的说明

关于PHP + MySQL - 事务不回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com