2009-06-20 56 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. 
)