@ikfah012
Не самый умный парень в этом чате

Как сохранить одно из значений json в mysql?

Получаю по api ответ в виде json такого вида:
{"data":{"calls":[{"id":"33","caller":{"name":"фио","extension":"100"},"called":[{"isConnected":true,"name":"+7999999999","phone":"+799999999"}],"businessNumber":"+78888888888","dateTimeUtc":"2019-05-31T11:46:02.873Z","duration":"69923","direction":"Outgoing","callStatus":"Connected","callRecord":,

Как мне с помощью php вытащить значение, например, phone и dateTimeUTC, а потом записать его в таблицу mysql?
Наверное, нужно использовать json_decode, но я не разобрался как это сделать правильно.
вардамп результата json_decode:
object(stdClass)#100 (2) { ["data"]=> object(stdClass)#99 (2) { ["calls"]=> array(25) { [0]=> object(stdClass)#2 (9) { ["id"]=> string(36) "33" ["caller"]=> object(stdClass)#3 (2) { ["name"]=> string(25) "фио" ["extension"]=> string(3) "100" } ["called"]=> array(1) { [0]=> object(stdClass)#4 (3) { ["isConnected"]=> bool(true) ["name"]=> string(12) "+799999999" ["phone"]=> string(12) "+79999999999" } } ["businessNumber"]=> string(12) "+78888888888" ["dateTimeUtc"]=> string(24) "2019-05-31T11:57:56.642Z" ["duration"]=> string(4) "4644" ["direction"]=> string(8) "Outgoing" ["callStatus"]=> string(9) "Connected" ["callRecord"]=> object(stdClass)#5 (2) { ["fileName"]=> string(152) и т.п.
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
fwlone
@fwlone
^^
<?php
$obj = json_decode(вашJSON);
// Внутри у вас будут обьекты called, calls, и т.д.,  
var_dump($obj ->data );
// Внутри у вас будет массив с обьектами внутри called
var_dump($obj ->data ->called);
// Достаем phoneи dateTimeUTC для первого элемента массива
echo 'Phone: ' . $obj->data->called[0]->phone .' | dateTimeUTC: ' . $obj->data->called[0]->dateTimeUtc;
// Достаем все элементы, через цикл
foreach ($obj ->data ->called as $called)
{
  echo 'Phone: ' . $called->phone .' | dateTimeUTC: ' . $called->dateTimeUTC . '<hr/>';
}
// А чтобы записать в базу, так же или сами обращаетесь к конкретному элементу или проходите циклом и сохраняете)
mysqli_query("INSERT INTO `table` (`phone`, `dt_time`) VALUES ('" . $called->phone . "', '" . $called->dateTimeUTC . "')"); 
// Точный запрос не покажу, тут уже какая у вас ORM или какая своя обертка лишь пример 
// Не забывайте про фильтрацию перед записью, мало ли какие данные придут)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
20 июл. 2024, в 08:48
5000 руб./за проект
20 июл. 2024, в 08:04
1111 руб./за проект
20 июл. 2024, в 06:29
4000 руб./за проект