我试图将 mysql 查询的结果作为 json 返回,但 json_encode 函数总是返回空白,尽管数组包含元素。
这里是相关代码
检索查询并转换为 php 数组:
$sql = "blablabla";
$clients = mysql_query($sql, $con);
$result = array();
while($row = mysql_fetch_assoc($clients)) {
//echo "rij: " . $row['name'];
$result[] = $row;
}
然后我返回结果:
echo json_encode($result);
这不会返回任何结果,而我在回显以下语句时确实得到了结果:
echo count($return);
返回 1
echo $return[0];
返回“数组”
echo $return[0]['name'];
返回“YOUREKA!演示”
知道我做错了什么吗?
编辑:我有一条记录应该返回,其中包含以下数据:
编号:2, 名称:YOUREKA!演示, 地址:Italiëlei 26, 邮政编码:2000, 城市:安特卫普, 国家:比利时, 国家代码:BE, 电话:+32-476061346, 电子邮件:mats@youreka.be, 距离:30.762980999827132,
最佳答案
关于 json_encode()
的文档指出“所有字符串数据必须采用 UTF-8 编码。”。您尝试使用 mysql_set_charset
的想法是正确的。
使用这种调试:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
printf("Initial character set: %s\n", $mysqli->character_set_name());
/* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
exit();
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}
$mysqli->close();
?>
关于php json_encode 为数组返回空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524036/