PHP:json_encode() 不显示多维数组的任何内容

标签 php mysql arrays json multidimensional-array

我正在尝试制作一个简单的 PHP 脚本,该脚本从我的 MySQL 数据库中获取一个表并将结果编码为 JSON,以便稍后在 Java 中使用它们。

这是我的代码:

<?php
    $servername = "localhost:3036";
    $username = "example_user";
    $password = "example_password";

    $conn = mysql_connect($servername, $username, $password);

    if(! $conn) {
        die("Could not connect: " . mysql_error());
    }

    $sql = "SELECT * FROM table_name";
    mysql_select_db("database_name");
    $retval = mysql_query($sql, $conn);

    if(! $retval) {
        die("Could not get data: " . mysql_error());
    }

    while($row = mysql_fetch_assoc($retval)) {
        $output[]=$row;
    }

    print(json_encode($output));
    mysql_close($conn);
?>

这只是给出一个空白页作为输出(设置为显示错误消息)。 但是,如果我更改 json_encode($output)json_encode($output[0]) (或数组边界内的任何其他数字),输出变为那个 $row array .

这可能是一个非常愚蠢的问题,但经过大约 3 小时的研究,我已经无计可施了。感谢您的帮助。

最佳答案

用户@Joni 引导我找到了解决方案。

添加 mysql_set_charset("utf8") 解决了我的问题。

如本文所述:Why is this PHP call to json_encode silently failing - inability to handle single quotes? .

关于PHP:json_encode() 不显示多维数组的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39140174/

相关文章:

mysql - 无法启动 mysqld

javascript - 如何使用主键和辅助键对数据进行非规范化

c++ - 优先队列 - 二叉堆

java - 二维数组 int 的 ArrayList

javascript - 使用 AJAX 将 PDF 文件发送到服务器 (PHP LARAVEL)

javascript - 使用 .preventDefault() 合并两个相似的函数 - javascript

php - 查询获取相关表中的数据

php - MySQL通过过滤器选择产品

php - 从 Url 获取变量

Mysql:将产品限制运输选项添加到购物车