Передача mysql_query в файл JSON не работает - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть небольшой код, который должен преобразовать запрос к моей базе данных mysql в файл json, но он ничего не возвращает.

Я видел этот пример во многих местах, но он не работает для меня

Конечно, я проверил, прежде чем запрос содержит строки

Я благодарен за помощь

<?php
    if (!$enlace = mysql_connect('X.X.X.X', 'xxxx', 'xxxx') or !mysql_select_db('xxxx', $enlace)) {
        echo 'No pudo conectarse a mysql';
        exit;
    }


    $sql = 'SELECT * FROM `Tabla`'; 
    $resultado = mysql_query($sql, $enlace);

    $json = array();
        while($row=mysql_fetch_assoc($resultado)){
              $json[]=$row;
        }



    echo json_encode($json);

?>

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Во-первых, использовать mysqli вместо mysql не рекомендуется начиная с PHP 5.5.0.А затем добавьте строку в массив вместо ее перезаписи.

$json[] = $row;

для теста добавьте эту строку в цикл

$json = [];
while($row = mysql_fetch_assoc($resultado)){
      $json[] = $row;
      print_r($row);
}

Если вы не получили вывод, запрос не дает вамлюбые результаты

0 голосов
/ 28 декабря 2018

Вы можете попробовать преобразовать в массив, чтобы быть уверенным.

while($row=mysql_fetch_assoc($resultado)){
          $json[]=(array)$row;
}

и да, простая отладка важна, просто используйте var_dump (), чтобы определить проблему

var_dump(['socket:', $resultado]); $i=0;
while($row=mysql_fetch_assoc($resultado)){
      $json[]=(array)$row;
      var_dump([$i++, $row]);
}
exit();

И, конечно, выне следует использовать устаревшие функции, но я предполагаю, что это учебная среда или просто старая рабочая система

0 голосов
/ 28 декабря 2018

Причина, по которой вы ничего не получаете, заключается в том, что вы перезаписываете переменную массива, также обратите внимание, что вам нужно использовать mysqli, поскольку mysql_ устарела.Измените эту строку:

$resultado = mysql_query($sql, $enlace);

    $json = array();
        while($row=mysql_fetch_assoc($resultado)){
              $json=$row;
        }

на:

$resultado = mysqli_query($sql, $enlace);

    $json = array();
        while($row=mysqli_fetch_assoc($resultado)){
              $json[]=$row;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...