2013-07-08 53 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