簡體   English   中英

插入JSON數組到MySQL數據庫

[英]insert json array into mysql database

嗨,我正嘗試將json數組插入到我的MySQL數據庫中,這對於php開發來說是新手,我已經看到了很多方法,幾乎​​沒有什么困惑,請幫幫我。

這是我的json數據。

[{ “Name”: “0”, “手機”: “DSF”, “城市”: “sdfsdf”, “電子郵件”: “DSF”},{ “名”: “13123123”, “手機”:“sdfsdfdsfsd ”, “城市”: “sdfsf”, “電子郵件”: “13123123”}]

我想將此json數組插入到我的mysql數據庫中,所以我使用了此代碼,但無法正常工作,請告訴我如何完成此操作。 我的PHP代碼。

<?php 

  $json = file_get_contents('php://input');
  $obj = json_decode($data,true);
  $obj[0]['name'];
  $obj[1]['phone'];
  $obj[2]['city'];
  $obj[3]['email'];

 //Database Connection
  require_once 'db.php';

 /* insert data into DB */
      mysql_query("INSERT INTO `db512172115`.`trial` (name, phone, city, email) 
      VALUES ('".$obj->{'name'}."', '".$obj->{'phone'}."', '".$obj->{'city'}."', '".$obj->{'email'}."')");

 //database connection close
   mysql_close($con);

   //}
  ?>

上面的代碼僅用於將值存儲到我的數據庫中,請幫助我解決該問題。

謝謝。

在json_decode函數中,您已指定'true',這將使返回數組。

然后,您嘗試將這些信息作為對象訪問,這將無法正常工作。 再加上返回兩個數組的事實,這表明您將需要一個foreach語句才能將這兩個數據插入數據庫中。

再看看foreach語句和數組,周圍有很多信息可以幫助您。

例如:

$array = json_decode($data,true);

foreach($array as $item) {
    mysql_query("INSERT INTO `db512172115`.`trial` (name, phone, city, email) 
  VALUES ('".$item['name']."', '".$item['phone']."', '".$item['city']."', '".$item['email']."')");

}

除此之外,您正在使用不推薦使用的mysql_ *函數,應該考慮使用mysqli或PDO來提高安全性。

這是另一種簡單的方法

<?php
    $json_value = file_get_contents('your_json_data_link');
    $array = json_decode($json_value,true);
    require_once 'db.php';
    foreach($array as $item) {
        $insert_value = "INSERT INTO `db512172115`.`trial` (name, phone, city,email)VALUES 
        ('".$item['name']."', '".$item['phone']."', '".$item['city']."', '".$item['email']."')");

        if ($con->query($insert_value ) === TRUE) {
            echo "Record Successfully<br>";
        }
        else
        {
            echo "Error: " . $insert_value . "<br>" . $con->error;
        }
    }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM