我有这个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文件来导入它 但我真的很想要这个ID 我的问题是在json文件中 它没有名称,例如" id":""
<?php
//
$connect = mysqli_connect("localhost", "xxxxx", "xxxxxx", "Rails");
$filename = "location-export.json";
$data = file_get_contents($filename);
$array = json_decode($data, true);
foreach($array as $row)
{
$sql = "INSERT INTO location(location_lat, location_lng, location_name, location_mission) VALUES ('".$row["lat"]."', '".$row["lng"]."','".$row["name"]."', '".$row["mission"]."')";
mysqli_query($connect, $sql);
}
echo "Data Inserted";
?>
答案 0 :(得分:0)
按如下方式更改您的代码
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);
}