将mysql_query传递到JSON文件不起作用

时间:2018-12-28 10:15:00

标签: php mysql json while-loop

我有一个小代码,可以将对我的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 :(得分:1)

什么都没得到的原因是因为您覆盖了数组变量, 还请注意,由于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;
        }

答案 1 :(得分:0)

所有拳头都使用mysqli代替mysqli,自PHP 5.5.0起不推荐使用。 然后将行添加到数组中,而不是覆盖它。

$json[] = $row;

为了进行测试,请将此行添加到循环中

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

如果没有输出,则查询不会给出任何结果

答案 2 :(得分:0)

您可以确定要转换为数组。

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();

当然,您不应该使用不推荐使用的功能,但我认为这是一个学习环境或只是一个旧的工作系统