gpt4 book ai didi

php - 使用不带 foreach 的数组更新 mysql

转载 作者:行者123 更新时间:2023-11-29 18:50:04 25 4
gpt4 key购买 nike

我将 array 插入 mysql 中,没有任何循环,并对每个数组进行查询:

$albumid = $_GET['id'];
$gettrack = $_POST["songtrack"];
$gename = $_POST["songname"];
$getlength = $_POST["songlength"];
$getprice = $_POST["songprice"];

$data = array();
$size = count($_POST["songname"]);

for($i = 0 ; $i < $size ; $i++){
$data[$i] = array(
"albumid" => $albumid,
"track" => $gettrack[$i],
"name" => $gename[$i],
"length" => $getlength[$i],
"price" => $getprice[$i]
);
}

$values = array();
foreach($data as $datas){
$values[] = "('{$datas['albumid']}','{$datas['track']}', '{$datas['name']}', '{$datas['length']}', '{$datas['price']}')";
}

$values = implode(", ", $values);

$sql = "INSERT INTO `song` (albumid, track, name, length, price) VALUES {$values};";

if (mysqli_query($connection, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}

现在我想用这样的东西更新 mysql,但我不知道,谷歌搜索并找到了类似的主题,但所有主题都用带有 foreach 循环的数组更新 mysql,我不想对每个数组进行查询,有什么解决方案吗?

我可以更改上面的代码来更新mysql吗?

最佳答案

您正在使用 mysqli 扩展。因此,可能的选择之一是使用 multi_query 函数,分别生成所有更新语句的字符串并在一个事务期间运行它:

开始交易;更新....更新....更新....提交;

一次一次运行更新应该会更快。

另一个解决方案可能是构建复杂的 UPDATE 语句。例如:

更新歌曲放 字段 = CASE 值 1 WHEN 条件 1 THEN 值 1当条件 2 那么值 2 ...

或复杂的 IF ELSE 语句。

最后一种可能性是使用自定义过程或函数来评估正确的值。

我想没有其他办法了。

关于php - 使用不带 foreach 的数组更新 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393669/

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