2009-06-20 53 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 

所以,我的问题,这是一个好主意呢?我在这里错过了OOP的观点吗?我应该学习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. 
)