2013-07-08 85 views
1

我有這種情況與PHP(PDO);我正在實現一種方法,從MySql中檢索數據,並做得很好,但問題是重複數據恢復爲關鍵骨骼,因爲沒有值,但其他數據附加更多,離開腳本和圖像的更多細節;PHP PDO檢索重複數據

Data.php

//read 
    public function getData() { 
    $statement = $this->db->prepare("select Id,Company_Name,Contact_Name,Contact_Title,Address from contact_details LIMIT 3;"); 
    $statement->execute(); 
    if ($statement->rowCount() > 0) { 
     $value = $statement->fetchAll(); 
     return $value; 
    } 
} 

可變檢查

enter image description here

JSON重複

enter image description here

預期的結果

Data: [{"Id":"1","Company_Name":"Romero y tomillo","Contact_Name":"Alejandra     Camino","Contact_Title":"Accounting Manager","Address":null} 
,{"Id":"2","Company_Name":"Morgenstern Gesundkost","Contact_Name":"Alexander Feuer","Contact_Title":"Marketing Assistant","Address":"Heerstr. 22"} 
,{"Id":"3","Company_Name":"Ana Trujillo Emparedados y helados","Contact_Name":"Ana Trujillo","Contact_Title":"Owner","Address":null}] 

回答

3

默認情況下,PDO使用PDO :: FETCH_BOTH作爲其提取結果。這意味着它將每一列映射到其名稱和「整數」列名稱。

檢查fetch_style PARAM = http://php.net/manual/en/pdostatement.fetch.php

爲了您預期的結果,你將需要使用PDO::FETCH_ASSOC屬性。 可以或者其設置爲PDO對象上的默認FETCH_MODE如下:

$this->db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); 

或者你可以指定它的每一個取卡:

$value = $statement->fetchAll(PDO::FETCH_ASSOC); 
+0

它工作正常,但只返回一個對象,應該從恢復中返回三個對象,並選擇 – MauricioHz

+0

我不知道您對該評論的含義。我用一些代碼示例編輯了答案 – Pinoniq