當前位置: 首頁>>代碼示例>>PHP>>正文


PHP IDatabase::begin方法代碼示例

本文整理匯總了PHP中IDatabase::begin方法的典型用法代碼示例。如果您正苦於以下問題:PHP IDatabase::begin方法的具體用法?PHP IDatabase::begin怎麽用?PHP IDatabase::begin使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在IDatabase的用法示例。


在下文中一共展示了IDatabase::begin方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: write

 /**
  * @param array $updates Array of arrays each containing two keys, 'primaryKey'
  *  and 'changes'. primaryKey must contain a map of column names to values
  *  sufficient to uniquely identify the row changes must contain a map of column
  *  names to update values to apply to the row.
  */
 public function write(array $updates)
 {
     $this->db->begin();
     foreach ($updates as $update) {
         $this->db->update($this->table, $update['changes'], $update['primaryKey'], __METHOD__);
     }
     $this->db->commit();
     wfGetLBFactory()->waitForReplication();
 }
開發者ID:claudinec,項目名稱:galan-wiki,代碼行數:15,代碼來源:BatchRowWriter.php

示例2: write

 /**
  * @param array $updates Array of arrays each containing two keys, 'primaryKey'
  *  and 'changes'. primaryKey must contain a map of column names to values
  *  sufficient to uniquely identify the row changes must contain a map of column
  *  names to update values to apply to the row.
  */
 public function write(array $updates)
 {
     $this->db->begin();
     foreach ($updates as $update) {
         $this->db->update($this->table, $update['changes'], $update['primaryKey'], __METHOD__);
     }
     $this->db->commit();
     wfWaitForSlaves(false, false, $this->clusterName);
 }
開發者ID:mb720,項目名稱:mediawiki,代碼行數:15,代碼來源:BatchRowWriter.php

示例3: beginTransaction

 /**
  * Begin a transcation on a DB
  *
  * This method makes it clear that begin() is called from a maintenance script,
  * which has outermost scope. This is safe, unlike $dbw->begin() called in other places.
  *
  * @param IDatabase $dbw
  * @param string $fname Caller name
  * @since 1.27
  */
 protected function beginTransaction(IDatabase $dbw, $fname)
 {
     $dbw->begin($fname);
 }
開發者ID:Kaph-Noir,項目名稱:mediawiki,代碼行數:14,代碼來源:Maintenance.php

示例4: doBatchPushInternal

 /**
  * This function should *not* be called outside of JobQueueDB
  *
  * @param IDatabase $dbw
  * @param array $jobs
  * @param int $flags
  * @param string $method
  * @throws DBError
  * @return void
  */
 public function doBatchPushInternal(IDatabase $dbw, array $jobs, $flags, $method)
 {
     if (!count($jobs)) {
         return;
     }
     $rowSet = array();
     // (sha1 => job) map for jobs that are de-duplicated
     $rowList = array();
     // list of jobs for jobs that are not de-duplicated
     foreach ($jobs as $job) {
         $row = $this->insertFields($job);
         if ($job->ignoreDuplicates()) {
             $rowSet[$row['job_sha1']] = $row;
         } else {
             $rowList[] = $row;
         }
     }
     if ($flags & self::QOS_ATOMIC) {
         $dbw->begin($method);
         // wrap all the job additions in one transaction
     }
     try {
         // Strip out any duplicate jobs that are already in the queue...
         if (count($rowSet)) {
             $res = $dbw->select('job', 'job_sha1', array('job_sha1' => array_keys($rowSet), 'job_token' => ''), $method);
             foreach ($res as $row) {
                 wfDebug("Job with hash '{$row->job_sha1}' is a duplicate.\n");
                 unset($rowSet[$row->job_sha1]);
                 // already enqueued
             }
         }
         // Build the full list of job rows to insert
         $rows = array_merge($rowList, array_values($rowSet));
         // Insert the job rows in chunks to avoid slave lag...
         foreach (array_chunk($rows, 50) as $rowBatch) {
             $dbw->insert('job', $rowBatch, $method);
         }
         JobQueue::incrStats('inserts', $this->type, count($rows));
         JobQueue::incrStats('dupe_inserts', $this->type, count($rowSet) + count($rowList) - count($rows));
     } catch (DBError $e) {
         if ($flags & self::QOS_ATOMIC) {
             $dbw->rollback($method);
         }
         throw $e;
     }
     if ($flags & self::QOS_ATOMIC) {
         $dbw->commit($method);
     }
     return;
 }
開發者ID:jpena88,項目名稱:mediawiki-dokku-deploy,代碼行數:60,代碼來源:JobQueueDB.php

示例5: badLockingMethodExplicit

 private function badLockingMethodExplicit(IDatabase $db)
 {
     $lock = $db->getScopedLockAndFlush('meow', __METHOD__, 1);
     $db->begin(__METHOD__);
     throw new RunTimeException("Uh oh!");
 }
開發者ID:paladox,項目名稱:mediawiki,代碼行數:6,代碼來源:DatabaseTest.php


注:本文中的IDatabase::begin方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。