我的班级看起来像:
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,我可以传递任何引用或做其他事情吗?或者可以这样做吗?
提前致谢。
答案 0 :(得分:0)
$query = $this->prepare($articleInsertQuery);
可能有所帮助。由于您现在不需要$dbObject
,因此可以从参数列表中删除它。
答案 1 :(得分:0)
使用工厂模式获取数据库对象,而不是每次需要时创建它。您可以创建一个新的工厂类,它可以存储每次需要时初始化和返回的DB对象的实例。例如,可以从已经创建的DB池中检索DB对象。