使用PHP中的一个mysqli_query调用更新多个MySQL记录

时间:2014-03-21 02:54:54

标签: php mysql

我必须一次更新数百条记录,并且我想知道是否可以使用一个mysqli_query来更新所有记录。我知道不可能使用类似的东西:

UPDATE table SET col=value1,col=value2,col=value3 WHERE id IN (1,2,3)

是否有可能以某种方式使用自定义函数或其他方法一次更新多个记录?

3 个答案:

答案 0 :(得分:1)

使用mysqli_multi_query()函数,通过该函数可以连接所有查询并将其传递给mysqli_multi_query函数

答案 1 :(得分:0)

答案是!您可以通过一个文件在一个过程中完成。

<?php

$connection=mysqli_connect("YourHost","UserName","Password","YourDatabase");

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

mysqli_query($connection,"UPDATE table SET col='value1' WHERE id='1'");
mysqli_query($connection,"UPDATE table SET col='value2' WHERE id='2'");
mysqli_query($connection,"UPDATE table SET col='value2' WHERE id='3'");
?>

您可以使用 WHERE

自定义和选择要根据特定条件更新的行

答案 2 :(得分:0)

如果我正确理解你想根据不同的条件用不同的数据更新你的列,那么:

col = value1 WHERE id = 1
col = value2 WHERE id = 2
col = value3 WHERE id = 3

等...

如果我误解了就停在这里。

我会遍历PHP中的数据并执行多个查询,但如果您坚持在一个查询中执行此操作,则可以使用嵌套的IF语句执行以下操作。

$query = "UPDATE table 
          SET col = 
          IF(
              id IN (1),value1,  
              IF(id IN (2),value2, 
              IF id IN (3),value3,NULL)
            )
            WHERE id IN (1,2,3)"

如果您有大量条件,那么我会坚持使用PHP中的多个查询。 MySQL可以同时处理几百个查询,所以我真的不担心这个问题。