Обработка транзакций с несколькими объектами 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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