2016-06-12 22 views
-2

これは、 'country.json'のjsonデータをmysqlテーブルに保存するためのPHPコードです。 [{ "名前": "アフガニスタン"、 "コード": "AF" }、{ "名前":「APHPコードでこのエラーを解決する方法

<?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ファイルは、これらのようなentrisの100以上を有します...土地諸島」、 "コード": "AX" }、{ "名前": "アルバニア"、 "コード": "AL" を}

しかし、ブラウザローカルホストでこのスクリプトを実行した後、エラー:

お知らせ:未定義のインデックス:Cでの名前:\ xamppの\ htdocsに\ Suraj_Assignment_8 \ Suraj_Assignment_8.phpライン上の17

お知らせ:未定義のインデックス:Cのコード:\ xamppの\ htdocsに\ Suraj_Assignment_8 \ Suraj_Assignment_8.phpライン17上の データがJSONから正常にインポートされました!

どうすれば解決できますか?として

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

'のvar_dump($配列)をエスケープすることができ;'。ああ、見て... –

+0

SQLステートメントの中でこのような "配列の構築"を使用することはできませんが、実際には動作するようになっています。あなたは、フィールドと値のリストを作成するために配列要素を繰り返しループすることができます。または、CSVにエクスポートしてMySQLサーバーに直接ロードします。 – arkascha

+0

あなたは '$ array'をループする必要があります。私の答えを見てください。 – weigreen

答えて

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

キーは引用符で囲む必要があります。だからここにあなたが上記のように行うことができたり、また、シーケンス

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

本当にうまくいくのですか? –

+0

@ManishJangirあなたはそれがうまくいかないと思いますか? – weigreen

+0

以前は、クエリの名前とコードの周りに一重引用符はありませんでした。 –

0

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

に:あなたはあなたの$array

の変化をループに必要

+0

配列をループする必要があるため、これは機能しません。 – Marki555

0

変更このコード:あなたはこれを試みる場合があります

foreach ($array as $value){ 
    $query="insert into country values('".$value['name']."','".$value[code]."')"; 
    $connect->query($query); 
} 
関連する問題