【问题标题】:json_encode does not work? [duplicate]json_encode 不起作用? [复制]
【发布时间】:2017-01-08 15:02:51
【问题描述】:

我想把mysql表数据转成json,可惜什么都没有返回。

<?php

$con=mysqli_connect("localhost","truem_apps","censored","truemarlon_apps");

if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql = "SELECT * FROM saechsisch";

if ($result = mysqli_query($con, $sql))
{
    $resultArray = array();
    $tempArray = array();

    while($row = $result->fetch_object())
    {
        $tempArray = $row;
        array_push($resultArray, $tempArray);
    }

    echo json_encode($resultArray);
}

mysqli_close($con);
?>

我的页面只是空白我在这里缺少什么?

【问题讨论】:

  • 检查您的错误日志。
  • 即使查询没有返回任何行,您也应该STILL至少从正在编码的空数组中看到[]。如果您实际上一无所获,那么某些事情正在扼杀您的脚本。或者您的查询完全失败,返回布尔值 false,这意味着整个 fetch/encode 部分被简单地跳过。
  • 旁注:$resultArray[]=$row;cleaner apporach
  • @MarcB 我已将$row = $result-&gt;fetch_object() 更改为$row = mysql_fetch_assoc($result),现在我得到了这些括号[]。如何接收行?
  • 这根本行不通,因为您使用的是mysqli,而不是mysql

标签: php mysql json


【解决方案1】:

您正在尝试访问此行中的方法: $result-&gt;fetch_object();

mysqli_query($con, $sql) 不返回对象实例。 请改用while ($row = mysqli_fetch_assoc($result))

编码为 JSON 对象:

echo json_encode($row);

【讨论】:

  • 感谢您的回答。到目前为止,它对我有帮助,现在我得到了这个输出:[false,false] 我的表由三个列(id、varchar、varchar)组成。这里有什么问题?
  • 您的表是否包含数据?还是空的?
  • 它实际上包含用于测试的条目。他们都有空格,我不知道这是否重要。
  • 您的表格应包含数据以查看结果
  • 我的表包含数据。我解决了这个问题。我的一些条目有“ä ö ü”,这就是输出为假的原因。是否有可能获得该数据?
猜你喜欢
  • 2012-07-25
  • 2016-08-20
  • 2015-01-14
  • 2015-08-29
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多