【问题标题】:Converting an array of items from SQL query into JSON using PHP使用 PHP 将一组项目从 SQL 查询转换为 JSON
【发布时间】:2016-09-12 04:44:48
【问题描述】:

我使用下面的代码从我的数据库中提取数据并将其转换为数组。我的问题是 echo json_encode 函数不起作用,并且在运行此代码(没有 print_r 函数)时,我留下了一个空白页。

$query = "SELECT * From table";

$resultarray = array();

if ($result = mysqli_query($connection, $query)) {

     while ($row = mysqli_fetch_row($result)) {

         $resultarray[] = $row;    
     }

     print_r($resultarray); // This line shows that the array is works but the code below does not convert to JSON.

     echo json_encode($resultarray);
}

我使用了 print_r 函数来确保在我的代码中创建了一个数组。我已经转了几个小时,我不明白我做错了什么。如果我使用 print_r 函数并查看页面源,我会得到以下信息:

 Array
(
[0] => Array
    (
        [0] => 5
        [1] => Name 1
        [2] => Description 1
        [3] => Location 1

    )

[1] => Array
    (
        [0] => 6
        [1] => Name 2
        [2] => Description 2
        [3] => Location 2

    )

[2] => Array
    (
        [0] => 45
        [1] => Name 3
        [2] => Description 3
        [3] => Location 3

    )

谢谢。

【问题讨论】:

  • 你有没有发现你缺少一个引号来关闭第一行的字符串?
  • 这个LINK 可能对你有帮助...
  • 感谢@ManjeetBarnala 问题已解决。我对此进行了调查并通过添加以下内容来解决它:mysqli_set_charset($connection,"utf8");
  • 酷!!...很高兴帮助你@Brett

标签: php arrays json multidimensional-array


【解决方案1】:

你忘了在这一行加上双引号:

$query = "SELECT * From table;

因为发生了内部服务器错误。

第一行代码应该是这样的

$query = "SELECT * From table";

【讨论】:

  • 好地方,但这不是问题所在。我在将 $query 粘贴到堆栈溢出中时对其进行了编辑,以使代码更清晰,但错过了结尾“。我正在运行的代码有这个,它查询在数据库中执行。我在将数组转换为 JSON 时遇到问题。
  • 请查看以上答案
【解决方案2】:

$conn = mysqli_connect("localhost", "root", "root","db_rest");
$query = "SELECT * 来自用户";
$resultarray = 数组();
if ($result = mysqli_query($conn, $query)) {
而 ($row = mysqli_fetch_row($result)) {
$结果数组[] = $行;
}
echo json_encode($resultarray);
}

【讨论】:

    【解决方案3】:
    $con = mysqli_connect("localhost", "username", "password", "dbname");
    if (mysqli_connect_errno()) {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $sql ="SELECT * FROM `table_name`";
    if ($result = mysqli_query($con, $sql)) {
        while ($row = mysqli_fetch_row($result)) {
           $resultarray[] = $row;
        }
        echo json_encode($resultarray);
    }
    mysqli_close($con);
    

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多