2009-06-20 3 views
0

Я пытаюсь создать класс, который принимает некоторые неопределенные данные из запроса базы данных (передается моему классу в виде массива) и превращает его в объект PHP со свойствами, которые создаются динамически от данных, переданных ему.Создание объекта из вызова динамической базы данных

Как так:

class myLibrary_Item extends myLibrary 
    { 
      private function __construct($vars) 
      { 
        foreach($vars as $var => $val) 
        { 
          $this->$var => $val; 
        } 
      } 

      private function __set($var, $val) 
      { 
        $this->$var => $val; 
      } 

      private function __get($var) 
      { 
        return $this->$var; 
      } 
    } 

$myArray = array(
    'firstName' => 'Joe', 
    'lastName' => 'Carrington' 
); 

$myObject = new myLibrary_Item($myArray) 
echo $myObject->firstName; 
//Hopefully will output Joe 

Итак, мой вопрос, является ли это хорошая идея вообще? Я пропустил здесь пункт ООП? Должен ли я узнать об PDO? Похоже, это может быть большой помощью, но я не хочу выкапывать ошибки, если это укусит меня в задницу позже.

ответ

0

Я бы сказал, что это действительно избыточно PDOStatement->fetchObject.

php > $dbh = new PDO("mysql:host=localhost;dbname=test", "guest"); 
php > $stat = $dbh->prepare("select * from books"); 
php > $stat->execute(); 
php > while($row = $stat->fetchObject()) 
php > print_r($row); 
stdClass Object 
(
    [title] => Hitchhiker's Guide 
    [author] => Douglas Adams 
    [isbn] => 0345391802 
    [publisher] => Del Rey 
    [year] => 1995 
    [summary] => Arthur Dent accidentally saves the world. 
) 
Смежные вопросы