gpt4 book ai didi

php - 如何在运行更新代码之前检查现有记录?

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

我们目前有一些 PHP 代码,允许最终用户通过填写​​表单上的一些字段来更新数据库中的记录。数据库有一个名为sequentialNumber 的字段,用户可以输入起始编号和结束编号,更新查询会在后台对起始编号和结束编号之间有sequentialNumber 的所有记录运行。这是一个非常快速的查询。

我们最近遇到了一些问题,人们试图更新不存在的记录。现在,这在数据库端不是问题,但他们希望在记录不存在时收到通知,如果存在,哪些记录不存在。

我能想到的唯一方法是在循环中运行选择查询:

for ($i=$startNum; $i<=$endNum; $i++)  {

//run select query: select sequentialNumber from myTable where sequentialNumber = $startNum;

}

问题是,我们的共享主机对脚本有超时限制,如果sequentialNumber批处理足够大,脚本就会超时。在运行更新查询之前是否有更好的方法来检查记录是否存在?

编辑:我突然想到我可以做另一种测试:获取他们尝试更新的记录数($endNum - $startNum),然后进行计数查询:

select count(sequentialNumber) where sequentialNumber between $startNum and $endNum

如果查询的结果与相减的值不一样,那么我们就知道所有的记录都不存在。它无法告诉我们哪些不存在,但至少我们知道有些东西不符合预期。这是一种有效的做事方式吗?

最佳答案

你可以试试

select sequentialNumber from myTable where sequentialNumber between $startNum and $endNum

这将返回该范围内的所有已知数字。然后您可以使用 array_search 函数来查找某个数字是否已知。这应该比对数据库进行大量查询要快。

关于php - 如何在运行更新代码之前检查现有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307218/

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