Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将Json插入mysql数据库?_Php_Mysql_Arrays_Json - Fatal编程技术网

Php 如何将Json插入mysql数据库?

Php 如何将Json插入mysql数据库?,php,mysql,arrays,json,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\/2b8a

嗨,我正在尝试将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"}]
[{“id_peneliti”:1083,“id_prodi”:“4”,“nama_lengkap”:“hasil edit”,“nama_tampilan”:“duplikat”,“nip”:“11111111 22222”,“foto用户”:“img\/foto\/2b8a1f40237e7f58bf076fc8d5288.jpeg”,“电子邮件”:email@gmail.com“,”电话“+39ry982835982”,“riwayat_pendidikan”:”
sfbvxlkmblfkblkn\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...";
     }
?>

编辑:改为尝试以下操作:

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注入。

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

<?
 $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...";
?>

您遇到了哪些错误(如果有)以及是否检查了错误
mysql\u error()
并且您的JSON没有多行,您不应该使用
foreach
。请不要再维护它们,它们将被删除。而是学习,并使用或。如果(foreach…)
不是有效的PHP语法,您还需要
。这段代码是怎么运行的?还是不工作。。。我不知道出了什么问题,但我浏览器中的显示是空的。你能帮忙吗…对不起,我的数据是数组。。。那我该怎么办。。。问题是,没有显示任何错误,告诉我这是否有效,并且我已签入数据库,仍然没有输入新数据。好的,那么,只需添加
$item=$data[0]
,但您必须确保始终有一个元素:)如果仍然无效,请使用
var\u dump($data)
的输出编辑您的问题。