我将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 ,但我不知道,谷歌搜索并找到类似的主题,但所有的主题更新mysql与数组foreach
循环,我不&# 39; t想用每个数组进行查询,任何解决方案?
我可以更改上面的代码来更新mysql吗?
答案 0 :(得分:0)
您正在使用mysqli扩展程序。 因此,可能的选项之一是使用multi_query函数,generate会单独串起所有更新语句并在一次事务中运行它:
开始交易; UPDATE .... UPDATE .... UPDATE .... COMMIT;
一次运行更新应该更快。
另一种解决方案可能是构建复杂性UPDATE语句。例如:
更新歌曲 组 Field = CASE value1 WHEN condition1 THEN value1 当条件2那么值2 ......
或复杂的IF ELSE声明。
最后一种可能性是使用自定义程序或功能来评估正确的值。
我没有别的办法了。