php json_encode为数组返回空白

时间:2016-02-20 13:38:17

标签: 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!demo”

知道我做错了吗?

编辑:我有一条记录,应该返回包含以下数据的记录:

id:2, 名字:YOUREKA!演示, 地址:Italiëlei26, 邮政编码:2000, 城市:安特卫普, 国家:België, 国家代码:BE, 电话:+ 32-476061346, 电子邮件:mats@youreka.be, 距离:30.762980999827132,

2 个答案:

答案 0 :(得分:0)

关于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();
?>

答案 1 :(得分:0)

我用json数据写了一个php / mysql连接的演示:工作正常

int

注意:此扩展在PHP 5.5.0中已弃用,并已在PHP 7.0.0中删除