gpt4 book ai didi

php - 如何使用mysql执行多个更新查询

转载 作者:行者123 更新时间:2023-12-01 00:54:26 24 4
gpt4 key购买 nike

我正在尝试一次执行多个更新查询。请查看下面提到的代码。

实际代码块:

$relist_item_id  = $_REQUEST['relist_item_id'];   // an array
$relist_item_num = count($relist_item_id);

for($j = 0; $j < $relist_item_num; $j++){
$item_id = $relist_item_id[$j];
$update_query = "UPDATE items SET ActiveItem=1 WHERE id=$item_id";
mysql_query($update_query);
}

上面的代码将一个一个地执行每个查询。但是我想一次执行所有查询,所以我尝试了下面的代码。

$update_query = '';
for($j = 0; $j < $relist_item_num; $j++){
$item_id = $relist_item_id[$j];
$update_query .= "UPDATE items SET ActiveItem=1 WHERE id=$item_id;";
}
mysql_query($update_query);

上面提到的代码没有执行/更新记录。但是,我想以类似的方式执行。有可能吗?

在 phpmyadmin 中使用“SQL”,我检查了一次可以执行多个查询,即一次可以执行多个更新查询。例如。下面提到的更新查询将同时执行。

UPDATE items SET ActiveItem=1 WHERE id=1;UPDATE items SET ActiveItem=1 WHERE id=5;UPDATE items SET ActiveItem=1 WHERE id=10;UPDATE items SET ActiveItem=1 WHERE id=12;UPDATE items SET ActiveItem=1 WHERE id=15;UPDATE items SET ActiveItem=1 WHERE id=16;UPDATE items SET ActiveItem=1 WHERE id=20;

我还想知道查询是否有任何限制,比如一次最多可以执行 20 个左右的查询?

我的实际目标是节省执行时间,因为可能会有一个巨大的 for 循环,并且可能需要很多时间来一个接一个地执行每个查询。我上面的做法可能不正确。但是,你的想法可以帮助我这样做。

提前致谢。

最佳答案

你可以尝试使用 IN:

ids = array(1,2,3....);
$update_query .= "UPDATE items SET ActiveItem=1 WHERE id IN (".implode(',', $ids).")";

关于php - 如何使用mysql执行多个更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12406267/

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