簡體   English   中英

簡單的PHP rest json復制數據字段

[英]Simple PHP rest json duplicates data fields

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

在數據庫中,我只有一個記錄。

如何解決以下問題?

使用關聯數組,肯定會工作......!

while ($event = mysqli_fetch_assoc($result)) {

    $events[] = $event; 
}

你使用了header('Content-Type:application / json'); - 它很好,但也嘗試刪除它。

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

對於JSON,你可能會想要做:

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

你可以看到這個OT然后你可以使用mysqli_fetch_assoc來修復錯誤,因為你現在使用的那個也返回一個數組,這就是你得到重復數據的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM