M
M
Maxim2019-05-31 14:54:03
PHP
Maxim, 2019-05-31 14:54:03

How to store one of the json values ​​in mysql?

I get a response via api in the form of json like this:

{"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":,

How can I use php to pull out a value, for example, phone and dateTimeUTC, and then write it to a mysql table?
Probably, you need to use json_decode, but I did not figure out how to do it correctly.
json_decode result wardump:
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) и т.п.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Valeron Sergeev, 2019-05-31
@ikfah012

<?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 или какая своя обертка лишь пример 
// Не забывайте про фильтрацию перед записью, мало ли какие данные придут)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question