我有一个关于如何实现我的用例的查询。我有一组数组想要插入到数据库中,但现在我很困惑如何才能有效地做到这一点。我正在使用 PHP 和MySQL。以下是用例:
$shareUrl = array();
$theInsertUrl = array();
$authKeyArray = array();
上面是我处理一些信息后得到的数组。现在我必须将其插入到数据库中,但我认为单个插入会是更好的解决方案,而不是一一插入(如果不对请更正)。
对于多个插入 values
我的 SQL 查询的一部分必须有
($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')
。我需要有关如何实现它的建议?上述方法是否正确,或者是否有更好的解决方案或者我应该使用单个插入语句?
最佳答案
只需将所有内容作为字符串放入数组中,然后将其内爆
$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)
}
关于php - 为多个数组值创建单个插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21181343/