У меня есть JSON, который выглядит следующим образом:разрушающихся в PHP массив из 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.
Журнал PHP показывает уведомление: "PHP Примечание: Массив для преобразования строки в /Applications/MAMP/htdocs/json.php в строке 46". в журнале PHP
var_dump ($ speaking2) возвращает:
array(3) { [0]=> string(713) "XXX" [1]=> string(891) "ZZZ" [2]=> string(1189)
и и так далее. Как бы вы посоветовали мне адаптировать этот сценарий, чтобы он работал?
1. Это уведомление, а не ошибка 2. Что показывает 'var_dump ($ speaking2)' –
Я обновил свой вопрос с дополнительной информацией. – user1029296
вне темы, но учтите, что функции 'mysql_xx()' устарели и их использование не рекомендуется. Вы должны подумать о переходе на лучший поддерживаемый API баз данных, такой как библиотека PDO. – Spudley