Обработка транзакций с несколькими объектами mysqliPhp

Кемеровские программисты php общаются здесь
Anonymous
Обработка транзакций с несколькими объектами mysqli

Сообщение Anonymous »

Предположим, что у нас есть два отдельных класса, каждый из которых владеет объектом 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 в «Начальной точке» и использовать его для фиксации или отката в «Конечной точке» запроса к базе данных классов A и класса B?
  • Нужно ли мне создавать снаружи и передавать тот же $mysqliObject в __constructor() класса A и класса B и используйте его для отката или фиксации (снаружи).
Хотелось бы увидеть больше методов с поддержкой сторонников.

Подробнее здесь: https://stackoverflow.com/questions/994 ... qli-object

Вернуться в «Php»