简单的PHP rest json复制数据字段

时间:2014-05-02 13:48:36

标签: php json rest

我是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"
   }
]

在数据库中,我只有一个记录。

如何解决以下问题?

4 个答案:

答案 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通常更容易。

http://us2.php.net/manual/en/mysqli-result.fetch-assoc.php

答案 2 :(得分:0)

对于JSON,您可能希望这样做:

while ($event = mysqli_fetch_array($result, MYSQL_ASSOC)) {

答案 3 :(得分:0)

你可以看到这个OT然后你可以使用mysqli_fetch_assoc来修复错误,因为你现在使用的那个也返回一个数组,这就是你得到重复数据的原因。