За последние 24 часа нас посетили 52570 программистов и 1799 роботов. Сейчас ищут 907 программистов ...

Запрос к БД и получение данных в JSON

Тема в разделе "PHP для новичков", создана пользователем kolhoz, 20 сен 2017.

  1. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Пытаюсь сделать запрос к БД и получить данные в JSON формате делаю так, по при попытке открыть страницу почему-то пишет что страница недоступна, хоятя подключение к БД и сама страница есть 100%

    Вот весь код. Может я что не так сделал. Подскажите где ошибки если есть

    Код (Text):
    1. <?php
    2.  
    3. $host = 'localhost';
    4. $db   = 'mybd';
    5. $user = 'mybd';
    6. $pass = 'mypass';
    7. $charset = 'utf8';
    8.  
    9. $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    10. $opt = [
    11. PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    12. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    13. PDO::ATTR_EMULATE_PREPARES   => false,
    14. ];
    15.  
    16. $pdo = new PDO($dsn, $user, $pass, $opt);
    17.  
    18. $response = array();
    19.  
    20. $result = $pdo->query("SELECT *FROM c068t_k2_items where catid = 6");
    21. $response["items"] = array();
    22. while ($row = $stmt->fetch()) {
    23.     $product = array();
    24.         $product["id"] = $row["id"];
    25.         $product["title"] = $row["title"];
    26.         $product["catid"] = $row["catid"];
    27.         $product["published"] = $row["published"];
    28.         $product["introtext"] = $row["introtext"];
    29.         array_push($response["items"], $product);
    30.     }
    31.     $response["success"] = 1;
    32.     echo json_encode($response);
    33. }
    34.  
    35. ?>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    в документации json_encode присутствует второй аргумент, ознакомьтесь.
     
  3. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Константы?
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    тьфу на декоде подумал.
    PHP:
    1. var_dump ($response);
    2. exit('---------------');
    3. echo json_encode($response);
    результат ?
     
  5. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Добавил ваши строчки в код, все равно не работает
     
  6. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Какая версия php? Может код
    PHP:
    1. $opt = [
    2. PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    3. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    4. PDO::ATTR_EMULATE_PREPARES   => false,
    5. ];
    стоит переписать так?
    PHP:
    1. $opt = array(
    2. PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    3. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    4. PDO::ATTR_EMULATE_PREPARES   => false
    5. );
    И зачем pdo? Дело вкуса, но функции mysql_... как-то поинтересней будут.
     
  7. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Все, разобрался спасибо. Версия PHP была 7.1