Мне нужно вставить элементы массива, закодированного в php, в базу данных, и я полностью застрял. Я сначала использовал json encode для захвата данных из базы данных с помощью SQL-запроса (который я сделал успешно), но теперь мне нужно иметь возможность сделать обратное. Если бы кто-нибудь мог помочь, я бы очень признателен. Это мой второй день работы, и я не очень хорошо себя чувствую. Ниже мой код:Inset php json закодированный массив в базу данных
$UserCoords_Query = "Select Accuracy, Longitude, Latitude, Timestamp
FROM UserDetails
WHERE UserId =" . $UserID;
$UserCoords_result = mysql_query($UserCoords_Query);
if (mysql_num_rows($UserCoords_result) == 0) {
echo "There are no users with an id of ". $UserID;
}
else {
$EmptyArray=array();
while ($row = mysql_fetch_array($UserCoords_result)) {
$Accuracy=$row['Accuracy'];
$Longitude= $row['Longitude'];
$Latitude=$row['Latitude'];
$Timestamp= $row['Timestamp'];
$Queue= array('Accuracy:' => $Accuracy, 'Latitude' => $Latitude, 'Longitude' => $Longitude, 'Timestamp' => $Timestamp);
array_unshift($EmptyArray,$Queue);
}
$ObjectResponse = array('Coords' => $EmptyArray);
echo json_encode($ObjectResponse);
$Json_Encoded= json_encode($ObjectResponse);
$Json_Decoded= json_decode($Json_Encoded, true);
$Update_Query= "INSERT INTO UserDetails (UserId, Accuracy, Latitude, Longitude, Timestamp)
VALUES ('".$UserID."','".$Json_Decoded[0] ['Accuracy']."','".$Json_Decoded[0]['Latitude']."',
'".$Json_Decoded[0]['Longitude']."','".$Json_Decoded[0]['Timestamp']."')";
mysql_query($Update_Query) or die(mysql_error());
Какая ошибка вы получаете? –
вы не должны вставлять json-текст в db, если вы не планируете НИКОГДА не обращаться к отдельным данным из json-текста с помощью sql. json - это формат транспорта, а не формат хранения. –
@ Marc B Ну мне нужно взорвать строку, чтобы получить элементы и добавить их в БД. Я думал, что это то, что делает функция декодирования json? – user2363025