gpt4 book ai didi

php - 来自 PHP 的 MySQL 事务

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:42 24 4
gpt4 key购买 nike

查询 1:

$link = mysql_connect('localhost', 'root', '');
mysql_select_db('rems', $link);
mysql_query('SET AUTOCOMMIT=0; START TRANSACTION', $link);
mysql_query('DELETE FROM admins WHERE admin_id=4', $link);
mysql_query('ROLLBACK; SET AUTOCOMMIT=1', $link);

查询 2:

$link = mysql_connect('localhost', 'root', '');
mysql_select_db('rems', $link);
mysql_query('SET AUTOCOMMIT=0;START TRANSACTION;
DELETE FROM admins WHERE admin_id=4;
ROLLBACK; SET AUTOCOMMIT=1', $link);

从上面的两个查询中,第一个没有正确执行(事务不工作),因为通过多次调用 mysql_query 函数单独执行查询。但我需要通过这种方式完成。那就是我需要第一种方式的结果(为单个事务多次调用 mysql_query 函数)

有什么想法吗???

最佳答案

使用标准的 mysql 模块,分别调用每个查询:

mysql_query('SET AUTOCOMMIT=0');
mysql_query('START TRANSACTION');
mysql_query('DELETE FROM admins WHERE admin_id=4');
mysql_query('ROLLBACK');//nothing will be done, I assume it's for testing
mysql_query('SET AUTOCOMMIT=1');

或者先创建一个过程:

DELIMITER //
CREATE PROCEDURE weirdrolledbackdelete (IN oid INTEGER)
BEGIN
SET AUTOCOMMIT=0;
START TRANSACTION;
DELETE FROM admins WHERE id = oid;
ROLLBACK;
SET AUTOCOMMIT=1;
END;//

所以你以后可以使用它:

mysql_query('CALL weirdrolledbackdelete(4);');

关于php - 来自 PHP 的 MySQL 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3280592/

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