【问题标题】:Passing mysql_query to JSON file does not work将 mysql_query 传递给 JSON 文件不起作用
【发布时间】:2019-05-26 04:19:44
【问题描述】:

我有一个小代码应该将查询到我的 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);

?>

【问题讨论】:

  • mysql_* 已贬值,请使用 mysqli_* 代替
  • 我被要求和 mysql_query 在一起 :(
  • $jsonjson_encode() 之前包含什么?

标签: php mysql json while-loop


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    首先使用 mysqli 而不是 mysql,自 PHP 5.5.0 起已弃用。 然后将该行添加到数组中而不是覆盖它。

    $json[] = $row;
    

    for test 在循环中添加这一行

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

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

    【讨论】:

    • 对不起,我犯了愚蠢的错误,但尽管进行了上述更改,它仍然无法正常工作:(
    【解决方案3】:

    没有得到任何东西的原因是因为你覆盖了数组变量, 另请注意,您需要使用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;
            }
    

    【讨论】:

    • 对不起,我犯了愚蠢的错误,但尽管进行了上述更改,它仍然无法正常工作:(
    • 然后确保你的表有数据
    • 如果,正如我所提到的,我查看了 $ result 包含的行数,并且确实包含行数
    猜你喜欢
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    相关资源
    最近更新 更多