将json数组插入mysql数据库

时间:2014-03-19 16:58:04

标签: php mysql arrays json

您好我正在尝试将json数组插入我的MySQL数据库我是这个php开发的新手我已经看到了很多方法,所有有点混乱请帮助我。

这是我的json数据。

  

[{ “名称”: “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);

   //}
  ?>

以上代码仅用于将值存储到我的数据库中,请帮我解决此问题。

感谢。

2 个答案:

答案 0 :(得分:1)

在您的json_decode函数中,您已指定&#39; true&#39;,这将返回一个数组。

然后您尝试将此信息作为对象进行访问,但该对象无法正常工作。此外,您将获得两个数组,这表明您需要使用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来提高安全性。

答案 1 :(得分:0)

这是另一种简单方法

<?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;
        }
    }
?>