[英]PHP: json_encode() doesn't show anything with multidimensional array
I'm trying to make a simple PHP script that fetches a table from my MySQL database and encodes the results in JSON, so I can use them later in Java. 我正在尝试创建一个简单的PHP脚本,从MySQL数据库中获取一个表,并使用JSON对结果进行编码,因此我稍后可以在Java中使用它们。
This is my code: 这是我的代码:
<?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);
?>
This just gives a blank page as output (error messages are set to display). 这只是一个空白页面作为输出(错误消息设置为显示)。 However, if I change
json_encode($output)
to json_encode($output[0])
(or any other number within the array's bounds), the output becomes that one $row array
. 但是,如果我将
json_encode($output)
更改为json_encode($output[0])
(或数组边界内的任何其他数字),则输出将成为一个$row array
。
This is probably a really stupid question, but after about 3 hours of research I'm at my wit's end. 这可能是一个非常愚蠢的问题,但经过大约3个小时的研究后,我才结束了。 Thank you for any help.
感谢您的任何帮助。
User @Joni led me to the solution. 用户@Joni带我到解决方案。
Adding mysql_set_charset("utf8")
fixed my issue. 添加
mysql_set_charset("utf8")
解决了我的问题。
As mentioned in this post: Why is this PHP call to json_encode silently failing - inability to handle single quotes? 正如本文所述: 为什么这个PHP调用json_encode会无声地失败 - 无法处理单引号? .
。
尝试
echo json_encode($output) ;
It seems you have some utf8 character in your result set 看来你的结果集中有一些utf8字符
add this statement before running your query 在运行查询之前添加此语句
mysql_query('SET CHARACTER SET utf8');
Update 更新
"mysql"
to 至
"mysqli"
and add 并添加
mysqli_set_charset($variável_de _conexão, 'utf8');
below the connection variable 在连接变量下面
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.