在同一行php中插入多个数组值

时间:2016-01-04 15:12:41

标签: php mysql

如何在mysql表中同时插入多个数组值? 我可以处理单值插入。

例如:

$product = json_decode($_POST['product']); // (1,2)
$sub_product = json_decode($_POST['sub_product']); // (3,4)
$plan = json_decode($_POST['plan']);// (5,6)
$months = json_decode($_POST['months']); // (7,8)

我想在mysql

中插入具有相同索引的值

类似的东西:

+----+---------+-------------+------+--------+
| id | product | sub_product | plan | months |
+----+---------+-------------+------+--------+
| 1  | 1       | 3           | 5    | 7      |
+----+---------+-------------+------+--------+
| 2  | 2       | 4           | 6    | 8      |
+----+---------+-------------+------+--------+

我已尝试插入单列,但效果很好。

for ($i = 0; $i < count($product); $i++) {
        $product = mysql_real_escape_string($product[$i]);
        mysql_query("INSERT INTO i_product(product) VALUES('$product')");
    } 

1 个答案:

答案 0 :(得分:0)

您可以使用以下格式执行多个INSERT操作,

INSERT INTO tbl_name
    (a,b,c)
VALUES
    (d,e,f),
    (g,h,i),
    (j,k,l);

以下是参考资料:

由于您将数据作为数组获取,因此INSERT操作应如下所示:

// your code    

mysql_query("INSERT INTO i_product(product, sub_product, plan, months) 
VALUES 
('" . mysql_real_escape_string($product[0]) . "', '" . 
      mysql_real_escape_string($sub_product[0]) . "', '" .
      mysql_real_escape_string($plan[0]) . "', '" . 
      mysql_real_escape_string($months[0]) . "'), 
('" . mysql_real_escape_string($product[1]) . "', '" . 
      mysql_real_escape_string($sub_product[1]) . "', '" . 
      mysql_real_escape_string($plan[1]) . "', '" . 
      mysql_real_escape_string($months[1]) . "')");

旁注:请不要使用mysql_数据库扩展,从PHP 5.5开始不推荐使用它们,并在PHP 7中完全删除。使用mysqli或{ {1}}而不是。