2013-07-08 3 views
1

У меня такая ситуация с PHP (PDO);PHP PDO извлекает повторяющиеся данные

Я реализую метод, который извлекает данные из MySql и делает это хорошо, но проблема в том, что дублированные данные восстанавливаются как ключевая кость, а не значение, но другие данные добавляют больше, оставьте скрипт и изображения более подробными;

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 пары = http://php.net/manual/en/pdostatement.fetch.php

Для вашего ожидаемого результата, вам необходимо будет использовать атрибут PDO::FETCH_ASSOC. Вы можете или установить это как FETCH_MODE по умолчанию на объекте п.д.о. следующим образом:

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

Или вы можете указать его для каждой выборки кал:

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

он отлично работает, но возвращает только один объект, должен вернуть три объекта из восстановления с помощью выбора – MauricioHz

+0

Я понятия не имею, что вы имеете в виду с этим комментарием. Я отредактировал ответ с некоторыми примерами кода – Pinoniq

Смежные вопросы