2014-03-19 231 views
0

嗨我想插入json數組到我的MySQL數據庫我是新的這個PHP開發我已經看到很多方法,所有的小混亂請幫助我。插入json數組到mysql數據庫

這是我的json數據。

[{「name」:「0」,「phone」:「dsf」,「city」:「sdfsdf」,「email」:「dsf」},{「name」:「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); 

    //} 
    ?> 

這上面的代碼只用於存儲值到我的數據庫請幫我解決這個問題。

謝謝。

+0

** **危險:您正在使用[**的**過時的數據庫API(http://stackoverflow.com/q/12859942/19068)和應該使用[現代替換](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin

回答

1

在你指定'true'的json_decode函數中,這將返回一個數組。

然後,您試圖以對象的形式訪問這些信息,這是行不通的。再加上你給兩個數組返回的事實表明你將需要一個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以提高安全性。

+0

請告訴我必須在哪裏使用此foreach語句 – user3427551

+0

我已編輯了相應的答案,但未經測試,但應給出您的總體思路。 – Karl

+0

如果這有幫助,請給我一個upvote,或者如果它解決了問題,請把它作爲一個公認的答案:) – Karl

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