我有一个如下所示的 JSON:
{
"num_found": 407343,
"results": [
{
"speaker_state": "LA",
"speaking": [
"ABC",
"DEF",
"GHI"
],
"speaker_party": "D",
},
等等。我正在尝试将这些数据解析到 MySQL 数据库中。我修改了以下 php 代码:
<?php
$hostname_ndb = "localhost";
$database_ndb = "senate";
$username_ndb = "root";
$password_ndb = "root";
$ndb = mysql_pconnect($hostname_ndb, $username_ndb, $password_ndb) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_ndb);
$url = "http://xxx.yyy/text.json";
$json = file_get_contents($url);
$out = json_decode($json, true);
foreach($out["results"] as $results) {
$speaker_state = $results['speaker_state'];
$speaking2 = $results['speaking'];
$speaking = implode('', $speaking2);
$date = $results['date'];
mysql_query("INSERT INTO speeches (speaker_state, speaking, date ) VALUES('$speaker_state', '$speaking','$date')") or die (mysql_error());
}
?>
数组中有一个数组,这似乎是问题所在。该脚本不起作用,数据未存储在数据库中。该脚本返回错误“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的 'speaking, date,' 附近使用。
PHP 日志在 php 日志中显示一条通知:“PHP Notice: Array to string conversion in /Applications/MAMP/htdocs/json.php on line 46”。
var_dump($speaking2) 返回:
array(3) { [0]=> string(713) "XXX" [1]=> string(891) "ZZZ" [2]=> string(1189)
等等。你会如何建议我修改这个脚本以使其工作?