gpt4 book ai didi

PHP SQL 更新数组

转载 作者:行者123 更新时间:2023-11-30 00:12:22 24 4
gpt4 key购买 nike

我最初对以下内容感到满意,以便将第 1 行和第 2 行更新为相同的值 (status=1)

if ($_POST){
$sql ="UPDATE table SET status = 1,
WHERE id IN (1,2 );";
db()->query($sql);

if(db()->query($sql)){
echo "<b>Good</b>";
}
else{
echo "<b>No Good</b>";
}
}

但现在我想用不同的值更新,即第 1 行更新为状态 1,第 2 行更新为状态 2,第 3 行更新为状态 3。

马上,我知道我需要1. 使用一个数组并循环遍历 3 次。2.将数组值传入$sql

我想它会是这样的,但我仍在学习 PHP..

$array_id = array(1, 2, 3);
$array_status = array(1, 2, 3);

if ($_POST){
$sql ="UPDATE table SET status = $array_status
WHERE id = $array_id;";
db()->query($sql);

if(db()->query($sql)){
echo "<b>Update Successful</b>";
}
else{
echo "<b>Update Unsuccessful</b>";
}
}

我将如何实现这一目标?

最佳答案

您可以使用 for loop 循环遍历数组并为每个查询执行一个查询(Radu Vlad 答案),或者您可以构建一个长查询并执行一次,如下所示:

if ($_POST){
$sql = ""; // Blank string
$len = count($array_id); // Number of iterations
for ($i = 0; $i < $l; $i++) { // Enter the loop
$sql .= "UPDATE
table
SET
status = {$array_status[$i]}
WHERE id = {$array_id[$i]};"; // Append the query
}
db()->query($sql);

if(db()->query($sql)){
echo "<b>Update Successful</b>";
}
else{
echo "<b>Update Unsuccessful</b>";
}
}

$i的val为0时,$array_id[$i]将打印第一个元素,当$i为1、$array_id[$i] 将打印第二个元素,依此类推。

使用 .= 将文本附加到字符串中。在循环结束时,$sql 将是一个包含 3 个查询的字符串 ('UPDATE ... SET ...; UPDATE ... SET ...; UPDATE ... SET .. .;').

但不确定这是否是最好的方法。但你明白了。

关于PHP SQL 更新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23945476/

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