尝试以 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 输出为空。
我正在使用 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 输出为空。