gpt4 book ai didi

php - MySQL DELETE 随机且非常罕见地失败

转载 作者:行者123 更新时间:2023-11-29 14:01:36 25 4
gpt4 key购买 nike

我有一个 MySQL DELETE 语句,后跟一个 INSERT 语句,以确保给定 ID 的数据集只有一份副本。 (我不使用UPDATE是有原因的)

问题是,我注意到在一个包含 5000 多个条目的数据集中,有 3 个实例没有执行 DELETE 语句,但执行了 INSERT 语句。最终结果是给定 ID 的重复条目。

下面是我的代码。执行失败时,php 脚本将退出并显示错误消息。应该是我的经验水平吧。知道问题可能是什么吗?

//delete
$query_delete = "DELETE FROM q1_6_list WHERE q_id = '".mysql_real_escape_string($q[qID])."'";
$result = mysql_query($query_delete) or errorReport("Error in query: $query_delete. ".mysql_error());
//insert
$query_insert = "INSERT INTO q1_6_list (q_id, vehicle, quantity) VALUES";
$result = mysql_query($query_insert) or errorReport("Error in query: $query_insert. ".mysql_error());
if (!$result)
errorReport($result);

编辑

经过仔细检查,我注意到我没有在 $result = mysql_query($query_delete)....

之后添加以下代码
if (!$result)
errorReport($result);

这是否也需要捕获所有其他错误消息,或者 mysql_query($query_delete) 或 errorReport... 捕获所有错误发生?

最佳答案

这里最好的选择是在 q1_6_list (q_id) 上创建主键:

ALTER TABLE q1_6_list ADD PRIMARY KEY(q_id)

并使用 MySQL 的 REPLACE INTO 语法,因此丢失删除操作,插入操作将变为:

$query_insert = "REPLACE INTO q1_6_list (q_id, vehicle, quantity) VALUES";

关于php - MySQL DELETE 随机且非常罕见地失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982538/

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