[英]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通常更容易。
對於JSON,你可能會想要做:
while ($event = mysqli_fetch_array($result, MYSQL_ASSOC)) {
你可以看到這個OT然后你可以使用mysqli_fetch_assoc
來修復錯誤,因為你現在使用的那個也返回一個數組,這就是你得到重復數據的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.