我有一个关于如何实现我的用例的查询。我有一组数组,我想在数据库中插入,但现在我很困惑,我怎么能有效地做到这一点。我正在使用 PHP和MySQL .Below是用例:
$shareUrl = array();
$theInsertUrl = array();
$authKeyArray = array();
以上是处理完一些信息后得到的数组。现在我必须将它插入数据库,但不是一个接一个地做,我认为有一个单个插入会更好的解决方案(如果不是,请更正)
对于多个插入,我的SQL查询的values
部分必须具有
($shareUrl[0],$theInsertUrl[0],$authKeyArray[0]),($shareUrl[1],$theInsertUrl[1],$authKeyArray[1]),...
我想过写一个for循环并创建一个像这样的多维数组
for($i=0;$i<count_of_array;$i++){
$multiArray[$i]['shareUrl'] = $shareUrl[0];
$multiArray[$i]['theInsertUrl'] = $theInsertUrl[0];
$multiArray[$i]['authKeyArray'] = $authKeyArray[0];
}
但是在SQL查询的values
部分中使用它仍然很繁琐,因为它接受这样的格式('val1','val2'),('val1','val2')
。我需要有关如何实施它的建议?以上方法是正确的还是有更好的解决方案 OR 我应该使用单个插入语句吗?
答案 0 :(得分:1)
将所有内容作为字符串放入数组中,然后内爆
$data= array();
for ($i = 0; $i < $size; $i++) {
$data[] = "('".$mysqli->real_escape_string($array1[$i])."','".$mysqli->real_escape_string($array2[$i])."')";
}
if (sizeof($data) > 0) {
$query = "INSERT INTO table (value1,value2) VALUES ".implode(",",$data).";");
$mysqli->real_query($query)
}