Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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_Json - Fatal编程技术网

Php 将json导入mysql

Php 将json导入mysql,php,mysql,json,Php,Mysql,Json,我有这个json文件 { "5927803e892d4c459f2992a3a1ac2ead.16": { "lat": 57.532696, "lng": 9.949331 }, "e25fe65e4fe4468db1361213ba1a376b.16": { "lat": 57.501783, "lng": 9.947415, "name": "Vidstrup Train Station

我有这个json文件

{
    "5927803e892d4c459f2992a3a1ac2ead.16": {
        "lat": 57.532696,
        "lng": 9.949331
    },
    "e25fe65e4fe4468db1361213ba1a376b.16": {
        "lat": 57.501783,
        "lng": 9.947415,
        "name": "Vidstrup Train Station",
        "disabled": false
    },
    "dcd8b44bd0f3478cb2d99c8d5115ba50.16": {
        "lat": 57.480323,
        "lng": 9.968769,
        "name": "Vellingshøj Station",
        "disabled": false
    }
}
我有一个工作的php文件导入它 但我也很想知道身份证 我的问题是在json文件中 没有像“id”这样的名称:


按如下方式更改代码

 foreach($array as $id => $row)  
 {  
      $sql = "INSERT INTO location(id, location_lat, location_lng, location_name, location_mission) VALUES ('{$id}','".$row["lat"]."', '".$row["lng"]."','".$row["name"]."', '".$row["mission"]."')";       
      mysqli_query($connect, $sql);       
 }  
 echo "Data Inserted";  
 ?> 
当然,这比使用预先准备好的语句完全不安全(而且可能更慢)

你应该试试

$stmt = mysql_prepare($link, "INSERT INTO location(id, location_lat, location_lng, location_name, location_mission) VALUES(?,?,?,?)");

 foreach($array as $id => $row)  
 {  
        mysqli_stmt_bind_param($stmt,"ssss", $id,  $row["lat"], ....);
        mysqli_stmt_execute($stmt);


 }  

按如下方式更改代码

 foreach($array as $id => $row)  
 {  
      $sql = "INSERT INTO location(id, location_lat, location_lng, location_name, location_mission) VALUES ('{$id}','".$row["lat"]."', '".$row["lng"]."','".$row["name"]."', '".$row["mission"]."')";       
      mysqli_query($connect, $sql);       
 }  
 echo "Data Inserted";  
 ?> 
当然,这比使用预先准备好的语句完全不安全(而且可能更慢)

你应该试试

$stmt = mysql_prepare($link, "INSERT INTO location(id, location_lat, location_lng, location_name, location_mission) VALUES(?,?,?,?)");

 foreach($array as $id => $row)  
 {  
        mysqli_stmt_bind_param($stmt,"ssss", $id,  $row["lat"], ....);
        mysqli_stmt_execute($stmt);


 }  

id是什么,您正在查找
foreach($key=>$row的数组)
?您应该使用一个准备好的语句来避免sql注入。这是我从文件“5927803e892d4c459f2992a3a1ac2ead.16”“e25fe65e4fe4468db1361213ba1a376b.16”中想要的id:“dcd8b44bd0f3478cb2d99c8d5115ba50.16”:这只是我的sql中的一个非常重要的位置_id,您要找的是哪个id($array as$key=>$row)
?您应该使用一个准备好的语句来避免sql注入。这是我从文件“5927803e892d4c459f2992a3a1ac2ead.16”“e25fe65e4fe4468db1361213ba1a376b.16”中想要的id:“dcd8b44bd0f3478cb2d99c8d5115ba50.16”:这只是一个行时间导入,所以在我的sql中,我将有位置。\u idoh现在刚刚检查了完整的脚本,它现在只读取第一行,所以我现在只获取第一条记录。不,我的回答中没有任何内容导致整个文件不被读取或解码。这部分发生在原始代码中
$data=file\u get\u contents($filename)$array=json_decode($data,true);
这应该被保留。他现在刚刚检查了完整的脚本,它现在只读取第一行,所以我现在只获取第一条记录。不,我的答案中没有任何东西会导致整个文件不被读取或解码。这部分发生在原始代码
$data=file_get_内容中($filename);$array=json_decode($data,true);
这应该被保留