2015-07-04 4 views
1

Я знаю разбор JSON данные обсуждались много, но то, что я хочу, это, вероятно, немного прощеВставьте JSON данных в тузде таблицу

мне нужно немного редактирования в сценарий bleow PHP для работы в качестве данных новообращенного JSon и толкать его в таблицу MySQL , так как скрипт работает только для чтения данных json! Я не очень хорошо знаком с PHP-кодированием.

Любая помощь приветствуется заранее.

<?php 

$data_string = '{"para": {"psize":"1","date_offset":"now","lang":"en","page":1,"token":"class","subcat ":"15"},"req":"ne"}'; 
$ch = curl_init('http://exampe.com/websrv/'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', 
'Content-Length: ' . strlen($data_string)) 
); 

$result = curl_exec($ch); 
header('Content-Type: text/plain; charset=utf-8'); 
print_r(json_decode($result)); 

?> 

и результат я получил

stdClass Object 
(
[data] => Array 
    (
     [0] => stdClass Object 
      (
       [is_fav] => 0 
       [is_new] => 1 
       [description] => Panasonic 
       [is_sold] => 0 
       [language] => en 
       [image] => 
       [contact_no] => 55561112 
       [is_pinned] => 0 
       [user_adv_id] => 1234 
       [premium_tag] => 0 
       [keywords] => 
       [title] => for sale Panasonic 
       [is_not_abusive] => 0 
       [announce_date] => 2015-01-01 02:33:33 
       [user_id] => 13 
       [price] => 20 
       [main_image] => Array 
        (
         [0] => http://example.com/user_adv/123.jpg 
         [1] => http://example.com/user_adv/124.jpg 
         [2] => http://example.com/user_adv/125.jpg 
        ) 

       [resize_image] => Array 
        (
         [0] => http://example.com/user_adv/res/123.jpg 
         [1] => http://example.com/user_adv/res/124.jpg 
         [2] => http://example.com/user_adv/res/125.jpg 
        ) 

       [type] => user 
      ) 

    ) 

[pinned_ads] => 0 
[total_pages] => 240 
[current_page] => 1 
[total_ads_count] => 240 
) 

ОК теперь я обновить код, но по-прежнему сталкиваются проблемы при вставке данных я получил сообщение об ошибке, которые являются

PHP Notice: Undefined variable: string in /var/www/xx.php on line 36 

погрешность строка начинается с запроса $ и здесь мой код

$result = curl_exec($ch); 
$json = json_decode($result, true); 

header('Content-Type: text/plain; charset=utf-8'); 


function mysqlconnect(){ 
global $db; 
$db = mysqli_connect("localhost", "user_db","mypass","my_db"); 
if (!$db) { 
    echo "Error: Could not connect to the database " . print_r(oci_error()); 
    exit; 
    } 
} 

function mysqlclose() { 
    global $db; 
    mysqli_close($db); 
} 

    mysqlconnect(); 
$query = "INSERT INTO wdwd VALUES (0,'" . $db->real_escape_string($string) . "')"; 

$result = $db->query($query); 
mysqlclose(); 

print_r($json); 

?> 
+0

Это очень распространенная задача, могу ли я предложить вам google теги, которые вы использовали здесь? Если вы застряли, я был бы рад помочь, но я знаю, что в Интернете есть бесконечное количество лучших ресурсов, которые лучше меня. Я добавлю, что вы можете добавить, что вы можете добавить «mysqli» в свой поиск. Параметризированные запросы являются предпочтительным методом для таких вещей. – user2027202827

+0

Вы можете вставить закодированную строку json в таблицу mysql. Установите тип данных как * текст *. –

+0

Использовать json_decode ($ output, true); для возврата в виде массива и вставки его в вашу базу данных –

ответ

1

Было бы хорошо узнать, как выглядит таблица вашей базы данных.

Когда вы говорите, что вам нужно вставить данные в базу данных, вы имеете в виду полную строку json?

Just insert straight into a varchar,text,blob type.

Или вы имеете в виду каждое поле JSon представляет собой столбец в таблице?

Я бы сделал то, что упоминает Double H. Возврат массива с использованием

json_decode($output, true).

Смежные вопросы