【发布时间】:2016-03-15 14:10:19
【问题描述】:
我正在尝试读取 json_decode 以插入到一个 MySQL 表中,但我收到此错误:警告: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"}
]
老实说,我不明白为什么我的代码会失败。
【问题讨论】:
-
如果你在
foreach声明之前var_dump($data)会显示什么? -
如果 json 看起来与发布的完全一样,则无法重新创建。请添加
var_dump()输出。 -
string(3521) "[ {"id":"1","ssn":"1000","idwork":"123"}, {"id":"1","ssn":"2000","idwork":"1234"}...我的var_Dump()