2017-01-03 5 views
0

2列のデータベースデータwoidjson_dataに挿入したいのですが、データベースに挿入するために値json_dataを取得できません。どうですか?PHPでjsonデータを与える

$data_end = json_decode('[ 
    { 
    "woid": "2254271", 
    "json_data": [ 
     { 
     "code": "23", 
     "date": "Tue, 03 Jan 2017 03:30 PM IRST", 
     "temp": "68", 
     "text": "Breezy" 
     } 
    ] 
    }, 
    { 
    "woid": "2254271", 
    "json_data": [ 
     { 
     "code": "23", 
     "date": "Tue, 03 Jan 2017 03:30 PM IRST", 
     "temp": "68", 
     "text": "Breezy" 
     } 
    ] 
    } 
]'); 

foreach($data_end as $idx=>$val){ 
    $this->admin_model->UpdateData('weather', array('json_data' => $val->json_data), array('woid' => $val->woid)); 
} 

そして、私は、このエラーを与える:あなたは、クエリの配列を解析しようとしている

A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: database/DB_driver.php
Line Number: 1524


Error Number: 1054
Unknown column 'Array' in 'field list'
UPDATE weather SET json_data = Array WHERE woid = '2254271'
Filename: models/model.php
Line Number: 39

+2

'$ val-> json_data'あなたは私が何をすべきか –

+0

を挿入することはできませんので、あなたの配列ではない文字列を与えるだろう? –

+0

実際には 'json_data'から実際に挿入したいものに依存していますか?または、jsonエンコードされたデータを挿入しますか? –

答えて

1

を。

配列を挿入する前にjson_encodeできます。

$this->admin_model->UpdateData('weather', array('json_data' => json_encode($val->json_data)), array('woid' => $val->woid)); 
0

$val->json_dataあなたはデシベルに挿入する前に、あなたはjson_encode($val->json_data)でそれを文字列に変更する必要があり、配列です。

0

MySQl QueryでPHP Array()を使用しようとしているため、データを保存するためにjson_encode()のメトを使用する必要がないため、動作しません。

あなたがそのように更新することができます -

$json_data = json_encode($val->json_data); 

$this->admin_model->UpdateData('weather', array('json_data' => $json_data), array('woid' => $val->woid)); 
関連する問題