gpt4 book ai didi

php - 将多个 foreach MySQL 插入语句与 PHP 数组数据合并为一个

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:52 27 4
gpt4 key购买 nike

我有一个包含不同项目及其各自值的 PHP 数组,需要更新数据库中每个项目的每一行。有没有办法只执行一个查询,而不是执行多个 foreach 查询?

foreach($array as $key=>$item){
$image_id = $item['id'];
$order_id = $item['order_id'];
$sql = "UPDATE images SET order_id='$order_id' WHERE id='$image_id'";
$query = mysqli_query($connection, $sql);
} // end for each

最佳答案

您不能使用 UPDATE 将它真正组合到一个查询中,因为值和条件成对出现(您要更新的每一行的值和条件都不同)。

INSERT INTO..ON DUPLICATE KEY UPDATE 有一个 hacky 修复,但我不会使用它 - 请参阅 question linked by RiggsFolly in the comments .

当使用准备好的语句时,您可以多次执行相同的查询(无论如何您都必须多次查询它,即使使用 mysqli_query() 也是如此,但这经过优化并且在使用时更安全准备好的声明)。

$sql = "UPDATE images SET order_id=? WHERE id=?";
$stmt = $connection->prepare($sql);
foreach($array as $key=>$item){
$stmt->bind_param("ss", $item['order_id'], $item['id']);
$stmt->execute();
}
$stmt->close();

如果您的 ID 是整数而不是字符串,请将相应的 s 替换为 i

关于php - 将多个 foreach MySQL 插入语句与 PHP 数组数据合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54921998/

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