亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 146 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號