gpt4 book ai didi

php - 事务回滚不起作用

转载 作者:行者123 更新时间:2023-11-29 15:34:00 25 4
gpt4 key购买 nike

我已经围绕 PDO 系统制作了一个具有额外功能的数据库包装器(是的,我知道围绕包装器的包装器,但它只是具有一些额外功能的 PDO)。但我注意到一个问题。

以下内容无法正常工作:

<?php
var_dump($db->beginTransaction());

$db->query('
INSERT INTO test
(data) VALUES (?)
;',
array(
'Foo'
)
);
print_r($db->query('
SELECT *
FROM test
;'
)->fetchAll());

var_dump($db->rollBack());

print_r($db->query('
SELECT *
FROM test
;'
)->fetchAll());
?>

var_dump 显示 beginTransaction 和 rollBack 函数返回 true,因此没有错误。

我预计第一个 print_r 调用会显示 N 个项目的数组,第二个调用会显示 N-1 个项目。但事实并非如此,它们都显示相同数量的项目。

我的 $db->query(< sql >, < value >) 不调用其他任何东西,然后 $pdo->prepare(< sql >)->execute(< value >) (当然还有额外的错误处理)。

所以我认为要么是 MySQL 的事务系统不起作用,要么是 PDO 的实现不起作用,或者我发现了一些问题。

有人知道问题出在哪里吗?

最佳答案

检查您的数据库类型是否等于innoDB。总之,您必须检查您的数据库是否支持事务。

关于php - 事务回滚不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58436503/

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