我是iOS开发人员和完成原型我需要简单的PHP代码,它可以将特定表中的数据作为JSON返回。这是我开发的代码:
<?php
$connection = mysqli_connect($db_host, $db_user, $db_pass, $db_database) or die(mysql_error());
$query = "select * from Events" or die("Error in the consult.." . mysqli_error($connection));
$result = $connection->query($query);
$events = array();
while ($event = $result->fetch_array(MYSQLI_ASSOC)) {
$events[] = $event;
}
echo json_encode($events);
$result->free();
$connection->close();
?>
问题是它复制了数据字段。这是我收到的结果:
[
{
"0":"1",
"id":"1",
"1":"Some title",
"title":"Some title"
}
]
在数据库中,我只有一个记录。
如何解决以下问题?
答案 0 :(得分:2)
使用关联数组,肯定会工作......!
while ($event = mysqli_fetch_assoc($result)) {
$events[] = $event;
}
你使用标题('Content-Type:application / json'); - 它很好,但也试过 删除它。
答案 1 :(得分:1)
http://us2.php.net/mysqli_fetch_array
“将结果行作为关联行,数字数组或两者都取”
resulttype参数:此可选参数是常量指示 应该从当前行数据生成什么类型的数组。该 此参数的可能值是常量MYSQLI_ASSOC, MYSQLI_NUM,或MYSQLI_BOTH。
看起来你正在使用BOTH。切换到ASSOC或NUM。 ASSOC通常更容易。
答案 2 :(得分:0)
对于JSON,您可能希望这样做:
while ($event = mysqli_fetch_array($result, MYSQL_ASSOC)) {
答案 3 :(得分:0)
你可以看到这个OT然后你可以使用mysqli_fetch_assoc
来修复错误,因为你现在使用的那个也返回一个数组,这就是你得到重复数据的原因。