PHP - 来自MySQL数据库的JSON响应

时间:2017-05-08 21:31:28

标签: php mysql json

我是PHP和MySQL的新手,但我需要为明天制作快速项目。我不知道在哪里找到解决我问题的方法,因为我对这些语言知之甚少。

如果有人会帮助我并找到为什么我在该代码之后得到空白页面,我将很高兴:

<?php
$servername = "xyz.xyz";
$username = "123";
$password = "123";
$dbname = "123";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT `id`,`symbol`,`shortcut` FROM `Table`";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    $currencyArray = array();

    while($row = $result->fetch_assoc()) {
        $currency = array($row["id"], $row["symbol"], $row["shortcut"]);
        $currencyArray[] = $currency;
    }

    print json_encode($currencyArray);
} else {
    echo "0 results";
}
$conn->close();
?>

我希望将JSON中的表中的所有数据显示为包含所有数据的数组的数组。现在我有空白页面。我很乐意帮忙。

1 个答案:

答案 0 :(得分:1)

尝试在php设置中启用error_reporting。 也许json_encode函数返回错误,并且根据php doc,返回false。这就是你看到空白页面的原因。

您可以使用json_last_error函数查看错误类型(doc)。

可能是编码问题? json以UTF-8编码。尝试调试您的代码,因为我们不会返回什么样的错误或知道您的数据是如何。

如果你打印出一个json字符串,我建议你放一些标题:

header("Content-type: application/json;charset=utf-8");
echo json_encode($array);