コード例 #1
0
ファイル: DataMapper.php プロジェクト: beingsane/quickcontent
 /**
  * Do delete action, this method should be override by sub class.
  *
  * @param mixed $conditions Where conditions, you can use array or Compare object.
  *
  * @throws \Exception
  * @return  boolean Will be always true.
  */
 protected function doDelete(array $conditions)
 {
     $query = $this->db->getQuery(true);
     // Conditions.
     QueryHelper::buildWheres($query, $conditions);
     $query->delete($this->table);
     $this->db->transactionStart(true);
     try {
         $result = (bool) $this->db->setQuery($query)->execute();
     } catch (\Exception $e) {
         $this->db->transactionRollback(true);
         throw $e;
     }
     $this->db->transactionCommit(true);
     return $result;
 }
コード例 #2
0
 /**
  * Method to roll back a transaction.
  *
  * @param   boolean  $toSavepoint  If true, rollback to the last savepoint.
  * @return  self                   Returns this object to support chaining.
  *
  * @throws  \RuntimeException
  */
 public function transactionRollback($toSavepoint = false)
 {
     if (version_compare($this->cmsRelease, '3.2', '>=')) {
         $this->_db->transactionRollback($toSavepoint);
     } else {
         if (!$toSavepoint || $this->transactionDepth <= 1) {
             if ($this->query('ROLLBACK')) {
                 $this->transactionDepth = 0;
             }
             return $this;
         }
         $savepoint = 'SP_' . ($this->transactionDepth - 1);
         if ($this->query('ROLLBACK TO SAVEPOINT ' . $this->nameQuote($savepoint))) {
             $this->transactionDepth--;
         }
     }
     return $this;
 }
コード例 #3
0
 /**
  * transactionRollback
  *
  * @param bool $asSavePoint
  *
  * @return  $this
  */
 public function transactionRollback($asSavePoint = false)
 {
     $this->db->transactionRollback($asSavePoint);
 }