【发布时间】:2012-03-30 13:18:33
【问题描述】:
假设我们有两个独立的类,每个类都有一个 mysqli 对象用于数据库操作。
class A{
protected $mysqliObject;
public function __constructor(){
$this->mysqliObject=new mysqli(...)
}
public function doSomething(){
$this->mysqliObject->query(...);
}
}
class B{
protected $mysqliObject;
public function __constructor(){
$this->mysqliObject=new mysqli(...)
}
public function doSomething(){
$this->mysqliObject->query(...);
}
}
doSomething() 方法使用$mysqliObject 进行数据库查询(SELECT、UPDATE、DELETE 等...)。我想在外面做以下事情:
// Start point
$aObject=new A();
$bObject=new B();
$aObject->doSomething();
$bObject->doSomething();
// End point
...但是如果其中任何一个查询失败,我想回滚这两个查询。我该怎么做?
- 能否在“起点”创建一个全新的
mysqli对象,并使用它在“终点”提交或回滚class A和class B的数据库查询? - 我是否必须在外部创建,并将相同的
$mysqliObject传递给class A和class B的__constructor(),并使用它来回滚或提交(外部)。
希望看到更多与赞成者有关的技术。
【问题讨论】:
标签: php database transactions mysqli