为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 将 JSON 插入 MySql 多表

PHP 将 JSON 插入 MySql 多表

PHP
心有法竹 2023-06-24 18:26:15
我有这个多维数组要插入到 mysql 数据库中:{  customer_id: "25",  total: 238000,  firstname: "oci",  product: [             {              product_id: "6",              product_name: "Orange"             },             {              product_id: "5",              product_name: "Melon"             }         ]}这是我的代码$_POST = json_decode(file_get_contents('php://input'), true);$customer_id= $_POST['customer_id'];$total= $_POST['total'];$firstname= $_POST['firstname'];foreach ($_POST['product'] as $q_product => $v) {    $product_id = $v['product_id'];    $product_name= $v['product_name'];$query = "INSERT INTO tbl_order(order_id,customer_id,total,firstname) VALUES (NULL,'$customer_id','$total','$firstname')";    $queryy = "INSERT INTO tbl_order_product    (order_id,product_id,product_name) VALUES (LAST_INSERT_ID(),$product_id,'$product_name')";}$result = mysqli_query($link, $query);$resultt = mysqli_query($link, $queryy);我无法将“queryy”插入到 tbl_order_product,只能插入 tbl_order 表 请帮我将“product”数组插入到 tbl_order_product 表中。
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

  1. 您的查询执行应该在循环内,否则只有最后的产品详细信息才会填充到两个表中。

  2. 不要在 php 中使用 LAST_INSERT_ID(),而是使用 php 函数来实现相同的目的。

  3. 不要将 order_id 作为传递null并确保它是自动增量的。

  4. 使用prepared语句来防止sql注入。

简单更新您的问题即可使其正常工作(不包括 sql 注入预防)

foreach ($_POST['product'] as $q_product => $v) {

    $product_id    = $v['product_id'];

    $product_name  = $v['product_name'];


    $query   =  "INSERT INTO tbl_order (customer_id,total,firstname) 

                VALUES ('$customer_id','$total','$firstname')";

    

    $result  =   mysqli_query($link, $query);

    $last_id =   mysqli_insert_id($link);


    $queryy  =  "INSERT INTO tbl_order_product (order_id,product_id,product_name) 

                 VALUES ($last_id ,$product_id,'$product_name')";


    $resultt =   mysqli_query($link, $queryy);   

}

要使用准备好的语句来防止sql注入,请看看这些。

  1. PHP MySQL 准备语句

  2. 使用 PDO 插入查询


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信