gpt4 book ai didi

php - 事务回滚不起作用

转载 作者:可可西里 更新时间:2023-11-01 06:53:27 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 >, < values >) 在 $pdo->prepare(< sql >)->execute(< values >) 之后什么都不调用(当然还有额外的错误处理)。

所以我认为或者 MySQL 的事务系统不工作,或者 PDO 的实现不工作或者我看到了一些错误。

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

最佳答案

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

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

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