如何解决我的PHP代码中的这个错误
问题描述:
这是我的PHP代码,用于将来自'country.json'的json数据保存到mysql表中。如何解决我的PHP代码中的这个错误
<?php
$host="localhost";
$user="root";
$pass="";
$db="jsondb";
$connect= new mysqli($host,$user,$pass,$db) or die("ERROR:could not connect to the database!!!");
$fo=fopen("country.json","r");
$fr=fread($fo,filesize("country.json"));
$array=json_decode($fr,true);
//To display all values from JSON file
//print_r($array);
$query="insert into country values('$array[name]','$array[code]')";
$connect->query($query);
echo "Data Imported Sucessfully from JSON!";
?>
JSON文件有超过100 entris像这样的: [{ “名”: “阿富汗”, “代码”: “AF” },{ “名”:“一......土地群岛”, “代码”: “AX” },{ “名”: “阿尔巴尼亚”, “代码”: “AL” }
但是,在浏览器本地主机上运行此脚本后,它会给出错误:
注意:未定义指数:名称在C:\ XAMPP \ htdocs中\ Suraj_Assignment_8线\ Suraj_Assignment_8.php 17
说明:未定义指数:代码在C:\ XAMPP \ htdocs中\ Suraj_Assignment_8 \上线17 Suraj_Assignment_8.php 从JSON导入的数据成功!
我该如何解决?
$query="insert into country values('$array[name]','$array[code]')";
到:
答
你通过你的$array
变化需要循环
foreach ($array as $value){
$query="insert into country values('".$value['name']."','".$value[code]."')";
$connect->query($query);
}
答
你可以试试这个:
$query="insert into country values('".$array['name']."','".$array['code']."')";
+0
由于您需要遍历数组,因此无法工作。 – Marki555
答
改变此密码为
$query="insert into country values('".$array['name']."','".$array['code']."')";
键应该在引号中。所以在这里你可以像上面那样做,或者你也可以转义序列
$query="insert into country values('$array[\"name\"]','$array[\"code\"]')";
'var_dump($ array);'。哦,看看... –
你不能在SQL语句中使用这样的“数组构造”,但它实际上是为了工作。你可以使用循环迭代数组元素来创建一个字段和值列表。或者你导出到CSV并直接加载到你的MySQL服务器。 – arkascha
你需要遍历你的'$ array',给我看看答案。 – weigreen