php - 为多个数组值创建单个插入语句

标签 php mysql sql arrays


我有一个关于如何实现我的用例的查询。我有一组数组想要插入到数据库中,但现在我很困惑如何才能有效地做到这一点。我正在使用 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/

相关文章:

php - jQuery 动态添加的表单字段不会提交

php - 基于php header 的javascript切换获取值?

php - 如何改变溢出?

sql - 插入一行没有值得到生成的id

MySQL 拒绝多个用户访问

php - Laravel 5.4 和 office365 公司邮箱

mysql - 选择 categoryId 属于 2 个或更多值的行

php - Codeigniter 调用非对象上的成员函数 num_rows()

mysql - 转换 - 9 十一月 2000 至 9/11/2000

mysql - phpmyadmin - 获取 FK 有关删除和更新操作的信息