gpt4 book ai didi

php - Mysqli 总是提交,即使在失败时

转载 作者:行者123 更新时间:2023-11-30 22:58:42 25 4
gpt4 key购买 nike

我有 4 个 MySQL INSERT 语句进入数据库的各个表,有时其中一个失败,其余插入垃圾数据。我正在尝试将代码转换为 MySQL 事务,但它的执行方式与以前相同,没有全有或全无事务,如果特定插入没有失败,则会进行所有插入。

$insert="INSERT INTO table STUFF";

//database transaction, completes all insertions or none
try {
//turn autocommit off and begin transaction
mysqli_autocommit($connection, false);

//do insert 1
$result = mysqli_query($connection,$insert);
if (!$result) {
throw new Exception('Error in Insert 1: ' . mysqli_error($connection));
}

//do insert2 3 and 4
...

//commit changes upon success
mysqli_commit($connection);
echo "records added";

} catch (Exception $e) {

//rollback upon failure
mysqli_rollback($connection);
echo "no records added";
}

最佳答案

我试图解决的问题是有时其中一个插入会失败,而我不希望另一个发生。我最后做的是重组插入物,这样它们就不会失效。到目前为止,我已经连续插入了数百次,没有任何问题。

问题的根源是我对表架构的误解。

关于php - Mysqli 总是提交,即使在失败时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045027/

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