我试图将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,
答案 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中删除