从动态数据库调用创建对象

时间:2009-06-20 04:31:46

标签: php database oop

我正在尝试创建一个类,它从数据库查询中获取一些未指定的数据(作为数组传递给我的类)并将其转换为一个PHP对象,其属性是从传递给它的数据动态创建的。 / p>

像这样:

    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吗?看起来这可能是一个很大的帮助,但是如果以后这会让我咬我的话,我不想捣乱这些错误。

1 个答案:

答案 0 :(得分: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.
)