2014-02-20 4 views
0

Когда I fetchAll() результаты запроса (SELECT * FROM users ...) как массив объектов, я хочу, чтобы эти объекты имели определенный класс, а именно User.PDO :: FETCH_OBJ + пользовательские классы?

  1. Как заставить PDO использовать тип User данных для объектов результата, и
  2. я должен определить все переменные-члены, соответствующие именам полей в классе?

ответ

1

есть статическое поле, чтобы указать PDO на выбор в класс, PDO::FETCH_CLASS.

Приведен пример получения User объектов;

class User { 
    public $name; 
    public $firstname; 
} 

Вы должны убедиться, что имена полей так же, как те, колонки и что класс доступен из класса/файла вы работаете с. (SELECT * тоже работает, просто все поля, доступные)

$query = "SELECT name, firstname FROM users"; 

и завернуть его в классах, используйте следующий,

$users = $sth->fetchAll(PDO::FETCH_CLASS, "User"); 

Тогда вы можете просто получить доступ к нему как массив User объектов.

+0

Ничего себе, насколько это просто: D спасибо –

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