2016-06-12 78 views
-2

這是我的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]')"; 

到:

+1

'var_dump($ array);'。哦,看看... –

+0

你不能在SQL語句中使用這樣的「數組構造」,但它實際上是爲了工作。你可以使用循環迭代數組元素來創建一個字段和值列表。或者你導出到CSV並直接加載到你的MySQL服務器。 – arkascha

+0

你需要遍歷你的'$ array',給我​​看看答案。 – weigreen

回答

0

你通過你的$array

變化需要循環

foreach ($array as $value){ 
    $query="insert into country values('".$value['name']."','".$value[code]."')"; 
    $connect->query($query); 
} 
+0

它真的有用嗎? –

+0

@ManishJangir哪一部分你認爲它不會工作? – weigreen

+0

以前,在查詢中沒有圍繞名稱和代碼的單引號。 –

0

你可以試試這個:

$query="insert into country values('".$array['name']."','".$array['code']."')"; 
+0

由於您需要遍歷數組,因此無法工作。 – Marki555

0

改變此密碼爲

$query="insert into country values('".$array['name']."','".$array['code']."')"; 

鍵應該在引號中。所以在這裏你可以像上面那樣做,或者你也可以轉義序列

$query="insert into country values('$array[\"name\"]','$array[\"code\"]')"; 
相關問題