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