gpt4 book ai didi

php - 已经有一个活跃的交易

转载 作者:行者123 更新时间:2023-12-05 01:45:30 26 4
gpt4 key购买 nike

我有一个使用提交和回滚的代码

$pdo = new dbpdo();
$fields = ['id','last','first'];
$values = [NULL,'asd','asd'];
//$pdo->db->beginTransaction();
try {
$pdo->db->beginTransaction();
//echo 'connected';
//$pdo->InsertBatch('staff',implode(',',$data));
//$pdo->InsertBatch('staff',implode(',',$fields), implode(',',$values));
$pdo->InsertBatch('staff',$fields, $values);
//$pdo->exec("INSERT INTO staff('id','first','last') VALUES ('NULL','asd','asd')");
//$pdo->execute();
$pdo->commit();
//$message = 'success';
echo 'Save';
} catch (Exception $e) {
//die("Unable to connect: " . $e->getMessage());
$pdo->rollBack();
//$message = 'sayop';
//die("Unable to connect: " . $e->getMessage());
echo "Failed: " . $e->getMessage();
}

我的问题是。当我执行这个时。 .是说。已经有一个事件的事务,并且数据还没有保存在数据库中。 . dbpdo 类具有扩展 PDO 类。

最佳答案

我今天在这里遇到了同样的情况...我试图在 Firebird 上插入一些主从记录并得到已经有一个事件事务错误。

我的解决方案是启用和禁用自动提交选项,试试这个:

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0)

在调用 $pdo->db->beginTransaction() 之前

当您完成交易时,重新启用自动提交:

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1)

引用: http://php.net/manual/pt_BR/pdo.begintransaction.php#113602

关于php - 已经有一个活跃的交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584306/

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