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



我想做一个简单的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")修复了我的问题。

在这篇文章中提到:为什么这个PHP调用json_encode静默失败-无法处理单引号?

Try

 echo json_encode($output) ;

您的结果集中似乎有一些utf8字符

在运行查询前添加此语句

mysql_query('SET CHARACTER SET utf8');

更新

"mysql"

"mysqli"

并添加

mysqli_set_charset($variável_de _conexão, 'utf8');
连接变量
下面的

相关内容

  • 没有找到相关文章

最新更新