我正在尝试制作一个简单的 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/