php json_encode 为数组返回空白

标签 php mysql arrays json

我试图将 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/

相关文章:

php - 获取迭代的 ul 内容的唯一 id

php - alt-tab 类型的网页设计

php - echo &lt;script&gt; 让我抓狂

java - 将多个桌面应用程序连接到一个在线数据库

mysql - Laravel 中按日期分组数据库结果

PHP 对 MySQL 中的数组计数不正确

apache - php 是否可以通过反向 ajax 长轮询进行扩展?

javascript - 如何在php中将日期和时间格式化为CRON格式?

java - 如何在二维数组中随机选择一种大小

arrays - 二进制搜索 "dictionary"(二维数组)