Reputation: 17
Hi I'm trying to insert the json array into my MySQL database. but I have a problem if I insert my Json data and try to insert into my database, display in browser is empty. I dont know how to fix it, please tell me and help me for this.
Here its my json data
[{"id_peneliti":1083,"id_prodi":"4","nama_lengkap":"hasil edit","nama_tampilan":"duplikat","nip":"11111111222222222222","foto_user":"img\/foto\/2b8a1f40237e7f58bf0f7376fc8d5288.jpeg","email":"[email protected]","phone":"+39ry982835982","riwayat_pendidikan":"
sfbvxlkmblfkblkn<\/p>\r\n"}]
here is my parsing 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...";
}
?>
Please help me...
Upvotes: 0
Views: 511
Reputation: 81
Edit: try this instead:
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']."')");
That should be enough. But you should escape your datas before inserting, or use prepared statements with PDO to prevent SQL injection.
Upvotes: 0
Reputation: 356
You are iterating your data as it was an array, but it is not. Try:
<?
$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...";
?>
Upvotes: 1