如何将Json插入mysql数据库?

时间:2014-11-12 17:01:21

标签: php mysql arrays json

您好我试图将json数组插入我的MySQL数据库。但是我有一个问题,如果我插入我的Json数据并尝试插入我的数据库,在浏览器中显示为空。我不知道如何解决它,请告诉我并帮助我。

这是我的json数据

[{"id_peneliti":1083,"id_prodi":"4","nama_lengkap":"hasil edit","nama_tampilan":"duplikat","nip":"11111111222222222222","foto_user":"img\/foto\/2b8a1f40237e7f58bf0f7376fc8d5288.jpeg","email":"email@gmail.com","phone":"+39ry982835982","riwayat_pendidikan":"
sfbvxlkmblfkblkn<\/p>\r\n"}]

这是我的解析json

<?
 $json_url = "http://localhost/location/create_jsoninput.php";
 $json = file_get_contents($json_url);
 $data = json_decode($json,true);

 //Database Connection
mysql_connect("localhost","name","pass") or die(mysql_error());
mysql_select_db("db_name") or die(mysql_error());

    if (foreach ($data as $item)) {
       mysql_query("INSERT INTO tb_database VALUES ('".$item['id_peneliti']."','".$item['id_prodi']."', '".$item['nama_lengkap']."', '".$item['nama_tampilan']."', '".$item['nip']."', '".$item['password']."', 
       '".$item['name']."', '".$item['email']."')");
     mysql_close();
     echo "Data Berhasil Disimpan...";
     }else{
     echo "Data Gagal, Tersimpan...";
     }
?>

请帮帮我......

2 个答案:

答案 0 :(得分:1)

您正在迭代数据,因为它是一个数组,但事实并非如此。尝试:

<?
 $json_url = "http://localhost/location/create_jsoninput.php";
 $json = file_get_contents($json_url);
 $data = json_decode($json,true);

 //Database Connection
mysql_connect("localhost","name","pass") or die(mysql_error());
mysql_select_db("db_name") or die(mysql_error());

mysql_query("INSERT INTO tb_database VALUES ('".$data['id_peneliti']."','".$data['id_prodi']."', '".$data['nama_lengkap']."', '".$data['nama_tampilan']."', '".$data['nip']."', '".$data['password']."', 
       '".$data['name']."', '".$data['email']."')");
     mysql_close();
     echo "Data Berhasil Disimpan...";
?>

答案 1 :(得分:0)

编辑:改为尝试:

if (!is_array($data) || count($data) != 1)
    exit(); // Error handling
$item = $data[0];
mysql_query("INSERT INTO tb_database
    VALUES ('".$item['id_peneliti']."','".$item['id_prodi']."',
    '".$item['nama_lengkap']."', '".$item['nama_tampilan']."',
    '".$item['nip']."', '".$item['password']."',
    '".$item['name']."', '".$item['email']."')");

那应该够了。但是您应该在插入之前转义数据,或者使用PDO准备语句以防止SQL注入。