コード例 #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 initialize a transaction.
  *
  * @param   boolean  $asSavepoint  If true and a transaction is already active, a savepoint will be created.
  * @return  self                   Returns this object to support chaining.
  *
  * @throws  \RuntimeException
  */
 public function transactionStart($asSavepoint = false)
 {
     if (version_compare($this->cmsRelease, '3.2', '>=')) {
         $this->_db->transactionStart($asSavepoint);
     } else {
         if (!$asSavepoint || !$this->transactionDepth) {
             if ($this->query('START TRANSACTION')) {
                 $this->transactionDepth = 1;
             }
             return $this;
         }
         $savepoint = 'SP_' . $this->transactionDepth;
         if ($this->query('SAVEPOINT ' . $this->nameQuote($savepoint))) {
             $this->transactionDepth++;
         }
     }
     return $this;
 }
コード例 #3
0
 /**
  * transactionStart
  *
  * @param bool $asSavePoint
  *
  * @return  $this
  */
 public function transactionStart($asSavePoint = false)
 {
     $this->db->transactionStart($asSavePoint);
 }