0

我的班级看起来像:

class MyDBClass extends SQLite3{

        function __construct()
        {
            $this->open('/path_of_file');
        }

        public function saveArticle($product, $dbObject){
            try{
                $title = sqlite_escape_string(strip_tags($product['title']));
                $productInsertQuery = "INSERT INTO Products (Title) VALUES (:title)";
                $query = $dbObject->prepare($productInsertQuery);
                $query->bindValue(':title', $title, SQLITE3_TEXT);   
                $result = $query->execute();
            }
            Catch(Exception $e){
                echo $e->getMessage();
            }
        }
    }

我称它为另一个类,如:

$this->dbObject->saveProduct($product, $this->dbObject);

如何避免在其起源的同一类中传递 $this->dbObject ,我可以传递任何引用或做其他事情吗?或者这样做可以吗?

提前致谢。

4

2 回答 2

0
$query = $this->prepare($articleInsertQuery);

可能有帮助。由于您现在不需要$dbObject,您可以将其从参数列表中删除。

于 2013-06-08T19:52:27.960 回答
0

使用工厂模式来获取您的数据库对象,而不是每次需要时都创建它。您可以创建一个新的工厂类,它可以存储每次需要时初始化和返回的数据库对象的实例。例如,可以从已经创建的对象池中检索 DB 对象。

于 2013-06-08T19:52:35.990 回答