Zend DB атомарные транзакции - PullRequest
2 голосов
/ 22 мая 2011

Мне нужно выполнить группу операций SQL, которые либо выживают вместе, либо умирают вместе. Чтобы в случае сбоя какой-либо части моего оператора (ов) весь процесс откатывался к началу, как если бы транзакция не состоялась.

без зенд я бы сделал:

$conn->query('BEGIN');
$conn->query($myQuery);
//rollback if anything went wrong
$conn->query('COMMIT'); 

В Zend я создал Db-соединение в моей начальной загрузке:

    protected function _initDb()
{
    $config=Zend_registry::get('config');
    $db = Zend_Db::factory($config->resources->db->adapter, $config->resources->db->params);  
    //set default adapter         
    Zend_Db_Table_Abstract::setDefaultAdapter($db); 
    Zend_Registry::set("db", $db);  
}

А взаимодействия с Db осуществляются классами моделей (расширяя Zend_Db_Table_abstract)

class Platform extends Zend_Db_Table_Abstract
{
 public function insertPlatform($x)
 {
  $this->insert($x);
 }
}
class Game extends Zend_Db_Table_Abstract
{
 public function insertGame($x)
 {
  $this->insert($x);
 }
}

Как я могу достичь того же (выжить вместе или умереть вместе) в Zend?

спасибо

Luca

1 Ответ

2 голосов
/ 22 мая 2011

Zend_Db также включает функциональность транзакции. Так что нет ничего особенного в использовании его с ZF или без него.

Вы найдете транзакции ZF, описанные в разделе Адаптер Руководства Zend_Db . Найдите пункт «Управление транзакциями в базе данных».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...