Задать вопрос
@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) и т.п.
  • Вопрос задан
  • 226 просмотров
Подписаться 2 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 или какая своя обертка лишь пример 
// Не забывайте про фильтрацию перед записью, мало ли какие данные придут)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽