将mysql\u查询传递到json文件不起作用

vltsax25  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(333)

我有一个小代码,可以将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);

?>
jhdbpxl9

jhdbpxl91#

不获取任何内容的原因是因为您正在覆盖数组变量,还请注意,您需要使用 mysqlimysql_ 已弃用。更改此行:

$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;
        }
vmjh9lq9

vmjh9lq92#

您可以尝试转换为数组来确定。

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

是的,简单的调试很重要,只需使用var\u dump()来识别问题

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

当然,您不应该使用不推荐使用的函数,但我假设这是一个学习环境或只是一个旧的工作系统

jm2pwxwz

jm2pwxwz3#

首先使用mysqli而不是mysql,因为php5.5.0,所以不推荐使用mysqli。然后将行添加到数组中,而不是覆盖它。

$json[] = $row;

对于test,在循环中添加这一行

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

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

相关问题