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

Php 如何使用mysql执行多个更新查询,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我试图一次执行多个更新查询。请查看下面提到的代码 实际代码块: $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

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

实际代码块:

$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);
}
我还想知道,查询是否有任何限制,比如我们一次最多可以执行20个查询

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


提前感谢。

为什么不在中使用如下功能:

$relist_item_id  = $_REQUEST['relist_item_id'];   // an array
$query="UPDATE items 
    SET ActiveItem=1 WHERE id in (".implode(', ', $relist_item_id).")";
假设这些值是数值,不需要用单引号括起来。 如果是,这应该是可行的:

$query="UPDATE items 
    SET ActiveItem=1 WHERE id in ('".implode("', '", $relist_item_id)."')";

为什么不在中使用如下功能:

$relist_item_id  = $_REQUEST['relist_item_id'];   // an array
$query="UPDATE items 
    SET ActiveItem=1 WHERE id in (".implode(', ', $relist_item_id).")";
假设这些值是数值,不需要用单引号括起来。 如果是,这应该是可行的:

$query="UPDATE items 
    SET ActiveItem=1 WHERE id in ('".implode("', '", $relist_item_id)."')";

您可以尝试在中使用:

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

您可以尝试在中使用:

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

您需要多个查询,一次只能执行一条语句。您可以在查询中使用
IN
,例如
updateitems SET ActiveItem=1,其中id IN($items\u id\u comma\u separated)
在数据库级别上,它是逐个执行的。所以,没有必要做你想做的事。你什么也得不到。看看准备好的语句,我相信mysql支持这一点,或者如果你不需要迭代-Alexander击中它的头部。你需要多个查询,你一次只能执行一条语句。你可以在查询中使用
IN
,比如
更新项目集ActiveItem=1,其中id IN($items\u id\u逗号\u分隔)
在数据库级别上,它是一个接一个地执行的。因此,没有必要做你想做的事情。你不会得到任何东西。看看准备好的语句,我相信mysql支持这一点,或者如果你不需要迭代-Alexander击中了它的头部。这个答案也是正确的,我想选择正确的一个。但因为我只能在e答案作为正确答案,我认为第一个答案更能说明问题。但是,我把这个答案标记为“有用”也是。我不赞成使用第一项,它提倡在数据库查询中直接使用用户输入。这将是非常不安全的。这个答案也是正确的,我希望选择正确的答案。但是,由于我只能选择一个答案作为正确答案,我想使用第一项作为其描述。但是,我已经标记了这一点答案也是“有用的”。我不赞成使用第一项,它主张在数据库查询中直接使用用户输入。这将是非常不安全的。