php - MySQL ROLLBACK 并与 PHP 一起使用

标签 php mysql transactions

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1 FOR UPDATE;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;

我直接从 MySQL 官方文档中获取了这个查询,我想知道某些方面(我自己添加了 FOR UPDATE)。假设有另一个用户已经锁定了记录。在这种情况下,更新应该会失败。如果发生这种情况,我肯定想要一种方法来向我的用户显示一个消息框,该消息框将提醒用户记录已被锁定。我怎样才能将这些信息返回到 PHP 中?此外,此查询不会默认回滚,还是我特别需要添加 ROLLBACK?

提前致谢!

最佳答案

您必须将autocommit 变量的值重置为OFF/0/FALSE。 试试这个:

SET SESSION autocommit = 0;
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1 FOR UPDATE;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;

关于php - MySQL ROLLBACK 并与 PHP 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786339/

相关文章:

mysql - 如何在mysql连接中将字段转换为字符串

c++ - calibrateCamera() 中的 Opencv 错误 : assertion failled i < 0,

mysql - 您可以手动管理事务提交/回滚吗?

PHP:持久变量值

javascript - 我可以循环遍历数据表列对象并添加+2的新行添加吗

php - .htaccess 使用 SSL 将 www 重定向到非 www

php - 如何在mysql的数据库中存储图像和文本

PHP动态列表在下一页中选择值

mysql - 脚本执行mysql查询,返回列名+结果

MySQL:使用自动提交锁定表与启动事务