2016-03-15 178 views
0

我试图读取一个json_decode插入到一个MySQL表中,但我得到这个错误:警告:为foreach提供的无效参数(), “不懂为什么,这是我的代码:ForEach Read Json获取为foreach提供的无效参数

$connection = new PDO('mysql:host=localhost;dbname=mydb', 'myuser', 'mypassword'); 

$getJsonData = file_get_contents('myurlwiththejsondata'); 

$data = json_decode($getJsonData); 


foreach ($data as $value) { 

    $sql = $connection->prepare('INSERT INTO `mytable` (`id`, `ssn`, `idwork`) VALUES 
     (NULL, :ssn, :idwork) '); 

    $sql->bindParam(':ssn', $value->ssn); 
    $sql->bindParam(':idwork', $value->idwork); 

    $getResult = $sql->execute(); 
} 

$connection = null; 

但我是不断收到这样的警告消息:警告:的foreach()提供了无效的说法,我的数据是这样的:

[ 
    {"id":"1","ssn":"1000","idwork":"123"}, 
    {"id":"1","ssn":"2000","idwork":"1234"} 
] 

老实说,我做不明白为什么我的代码失败。

+0

这是什么显示,如果你'的var_dump($数据)''你之前foreach'权声明? –

+0

无法重新创建json是否看起来完全像张贴。请添加'var_dump()'输出。 – Parfait

+0

'string(3521)“[ {”id“:”1“,”ssn“:”1000“,”idwork“:”123“}, {”id“:”1“,”ssn“ 2000“,”idwork“:”1234“} ...'我的var_Dump() –

回答

0

试试这个:

$getJsonData = file_get_contents('myurlwiththejsondata'); 
// Add this line 
$getJsonData = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($getJsonData)); 
$data = json_decode($getJsonData); 

如果上面的代码不为你工作不是检查我的答案here

相关问题