尝试以 json 格式获取数据形式 mysql 时出现黑屏

Getting blank screen when trying to get data form mysql in json format

我正在使用 php 文件从 mysql 数据库获取数据并在 json 输出中显示该数据,同时访问某个 url 地址,例如 http://example.com/api/users.php

当我使用以下代码时,我得到 json 响应:

<?php

    header("Access-Control-Allow-Origin: *");

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "database";

//Connect to MySQL
$mysql = mysqli_connect($servername, $username, $password, $dbname);

$result_array = array();

$sql = "SELECT username FROM users";
    
    $result = $mysql->query($sql);
    
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            array_push($result_array, $row);
        }
    }
    
    echo json_encode($result_array);
    $mysql->close();
?>

但是当尝试从“用户”行获取多个单元格时:

$sql = "SELECT username, avatar, email FROM users";

我的 Web 浏览器出现空白屏幕。 我做错了什么?

如果您发布的 PHP 代码在使用单个字段时返回有效 json,则基本代码是正确的。现在,当您尝试在查询中获取多个字段时,它会显示空白屏幕。这告诉我您的 SQL $sql = "SELECT username, avatar, email FROM users"; 可能会抛出错误。尝试直接在数据库上运行这个sql语句,列名可能会出错。 因此,如果查询失败,您的 $result_array 为空,因此 json 输出为空。