Я пытаюсь обработать запрос POST от веб-службы. Он отправляет HTTP-запрос POST следующим образом:Обращаться с запросом POST в формате JSON
{
"latitude":"12.232",
"longitude":"123.323"
}
Это сообщение в файл PHP на моем сервере. Я знаю, что он попадает в файл точно. Однако я не получаю данные.
В моем PHP, я это (оставляя кучу вещей:.
$json = file_get_contents('php://input');
$obj = json_decode($json);
$mine ="sixteen"; //using this for a test
$sql = "INSERT INTO rr_emergency (random) VALUES('$obj');";
$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
Это не делает никаких изменений в моей базе данных
Если я вместо этого:
$sql = "INSERT INTO rr_emergency (random) VALUES('$mine');";
Затем «шестнадцать» добавляется в нужное место в новой строке в моей таблице каждый раз, когда веб-служба вызывает мой PHP. Вот как я знаю, что получаю данные.
ПРИМЕЧАНИЕ. Я пытался просто добавить $obj
в таблицу, чтобы увидеть возвращаемый формат данных, прежде чем я попытаюсь правильно разобрать его и поместить все, где он принадлежит.
Что я здесь делаю неправильно? Я думаю, что проблема здесь ($json = file_get_contents('php://input');
), но не знаю, что еще попробовать.
Спасибо.
Вы не можете хранить PHP объект в столбец таблицы mysql. Результат '$ obj = json_decode ($ json);' является объектом PHP, а не строкой – RiggsFolly
Добавьте некоторую ошибку, проверяющую ваш код запроса, и вы, вероятно, увидите полезное сообщение об ошибке. – RiggsFolly
Вы не можете получить значения с '$ _POST ['широта'];'? Думаю, JSON этого не допустит? – ntgCleaner