Php 使用不带foreach的数组更新mysql
我将Php 使用不带foreach的数组更新mysql,php,mysql,mysqli,Php,Mysql,Mysqli,我将array插入到mysql中,没有任何循环,并对每个数组进行查询: $albumid = $_GET['id']; $gettrack = $_POST["songtrack"]; $gename = $_POST["songname"]; $getlength = $_POST["songlength"]; $getprice = $_POST["songprice"]; $data = array(); $size = count($_POST["songname"]); for($
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);
}
$albumid=$\u GET['id'];
$gettrack=$_POST[“歌曲曲目”];
$gename=$\u POST[“songname”];
$getlength=$_POST[“songlength”];
$getprice=$_POST[“songprice”];
$data=array();
$size=count($_POST[“songname”]);
对于($i=0;$i<$size;$i++){
$data[$i]=数组(
“albumid”=>$albumid,
“track”=>$gettrack[$i],
“name”=>$gename[$i],
“长度”=>$getlength[$i],
“价格”=>$getprice[$i]
);
}
$values=array();
foreach($data作为$datas){
$values[]=“({$datas['albumid']}'、{$datas['track']}'、{$datas['name']}'、{$datas['length']}'、{$datas['price']}'”;
}
$values=内爆(“,”,$values);
$sql=“插入`歌曲'(唱片ID、曲目、名称、长度、价格)值{$VALUES};”;
if(mysqli_查询($connection,$sql)){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.
“.mysqli_Error($connection);
}
现在我想用类似这样的东西更新mysql,但我不知道,在谷歌上搜索并找到了类似的主题,但所有主题都用数组更新mysql,使用foreach
循环,我不想对每个数组进行查询,有解决方案吗
我可以更改以上代码以更新mysql吗?您正在使用mysqli扩展。 因此,一个可能的选项是使用multi_query函数,分别生成所有update语句的字符串,并在一个事务中运行它: 启动交易; 更新。。。。 更新。。。。 更新。。。。 承诺 一次一个地运行更新应该会更快 另一个解决方案可以是构建复杂性更新语句。例如: 更新歌曲 设置 字段=条件1时的案例值1,然后是值1 当条件2时,则值2 或者复杂的IF-ELSE语句 最后一种可能性是使用自定义过程或函数来计算正确的值
我想没有别的办法了。你运行过这段代码吗?是的,这段代码插入到了mysql中,它工作得很好,我正在寻找一个类似上述代码的
update
mysql的解决方案,没有任何循环@不幸的是,mysql不支持像批量更新这样的东西。但另一个解决方案是在第一次更新之前开始事务,在最后一次查询之后提交。应该快一点。我会给你写一个答案。我知道问题出在哪里了。不太清楚。您试图同时更新多行,而不是多列。。。请阅读以下内容: