вернуть массив объектов

хотите, чтобы метод возвращал массив объектов, каков наилучший способ получения данных из db, а затем заполнять список возвращаемых объектов.

<?php class DataObject{ public function GetObjetList(){ // Connect to the database server $dbh = new PDO("mysql:host=localhost;dbname=bookdb", "webuser", "secret"); // Execute the query return 1200 register $stmt = $dbh->query('SELECT sku, title FROM products ORDER BY title'); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $sku = $row['sku']; $title = $row['title']; return something?? --> how to?? } } ?> 

С уважением!

PDO уже имеет режим выборки, который возвращает объекты.

Измените свой код на это:

 while ($row = $stmt->fetch(PDO::FETCH_OBJ)) { 

Вы можете вывести результаты в массив внутри цикла while, а затем вернуть массив после закрытия.

Изменить: Это то, что я имею в виду

  <?php class DataObject{ public function GetObjetList(){ // Connect to the database server $dbh = new PDO("mysql:host=localhost;dbname=bookdb", "webuser", "secret"); // Execute the query return 1200 register $stmt = $dbh->query('SELECT sku, title FROM products ORDER BY title'); $array = array(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $sku = $row['sku']; $title = $row['title']; $array[] = $row; } return $array; } ?> 
 class DataObject { public function __construct($pdo) { $this->db = $pdo; } public function GetObjetList() { $sql = 'SELECT sku, title FROM products ORDER BY title'; return $this->db->query($sql)->fetchAll(PDO::FETCH_OBJ); } } 

Поместите возврат через некоторое время, а не внутри, используйте FETCH_OBJ и массив:

  $rows = array(); $rows = $stmt->fetchAll(PDO::FETCH_OBJ); return $rows;