当前位置: 首页>>代码示例>>PHP>>正文


PHP JDatabaseDriver::lockTable方法代码示例

本文整理汇总了PHP中JDatabaseDriver::lockTable方法的典型用法代码示例。如果您正苦于以下问题:PHP JDatabaseDriver::lockTable方法的具体用法?PHP JDatabaseDriver::lockTable怎么用?PHP JDatabaseDriver::lockTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JDatabaseDriver的用法示例。


在下文中一共展示了JDatabaseDriver::lockTable方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _lock

	/**
	 * Method to lock the database table for writing.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   11.1
	 * @throws  RuntimeException
	 */
	protected function _lock()
	{
		$this->_db->lockTable($this->_tbl);
		$this->_locked = true;

		return true;
	}
开发者ID:robschley,项目名称:joomla-platform,代码行数:15,代码来源:table.php

示例2: saveParams

 /**
  * Save the plugin parameters
  *
  * @return  boolean
  *
  * @since   3.5
  */
 private function saveParams()
 {
     // Update params
     $this->params->set('lastrun', time());
     $this->params->set('unique_id', $this->getUniqueId());
     $interval = (int) $this->params->get('interval', 12);
     $this->params->set('interval', $interval ? $interval : 12);
     $query = $this->db->getQuery(true)->update($this->db->quoteName('#__extensions'))->set($this->db->quoteName('params') . ' = ' . $this->db->quote($this->params->toString('JSON')))->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin'))->where($this->db->quoteName('folder') . ' = ' . $this->db->quote('system'))->where($this->db->quoteName('element') . ' = ' . $this->db->quote('stats'));
     try {
         // Lock the tables to prevent multiple plugin executions causing a race condition
         $this->db->lockTable('#__extensions');
     } catch (Exception $e) {
         // If we can't lock the tables it's too risky to continue execution
         return false;
     }
     try {
         // Update the plugin parameters
         $result = $this->db->setQuery($query)->execute();
         $this->clearCacheGroups(array('com_plugins'), array(0, 1));
     } catch (Exception $exc) {
         // If we failed to execute
         $this->db->unlockTables();
         $result = false;
     }
     try {
         // Unlock the tables after writing
         $this->db->unlockTables();
     } catch (Exception $e) {
         // If we can't lock the tables assume we have somehow failed
         $result = false;
     }
     return $result;
 }
开发者ID:SysBind,项目名称:joomla-cms,代码行数:40,代码来源:stats.php

示例3: lock

	/**
	 * Method to lock the database table for writing.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since  K4.0
	 * @throws  RuntimeException
	 */
	protected function lock()
	{
		static::$db->lockTable(static::$tbl);
		static::$_locked = true;

		return true;
	}
开发者ID:BillVGN,项目名称:PortalPRP,代码行数:15,代码来源:object.php

示例4: lockTable

 /**
  * Locks a table in the database.
  *
  * @param   string  $tableName  The name of the table to unlock.
  *
  * @return  self                Returns this object to support chaining.
  *
  * @throws  \RuntimeException
  */
 public function lockTable($tableName)
 {
     $this->_db->lockTable($tableName);
     return $this;
 }
开发者ID:bobozhangshao,项目名称:HeartCare,代码行数:14,代码来源:CmsDatabaseDriver.php

示例5: onAfterInitialise

 /**
  * Listener for the `onAfterInitialise` event
  *
  * @return  void
  *
  * @since   3.5
  */
 public function onAfterInitialise()
 {
     // Only run this in admin
     if (!$this->app->isAdmin()) {
         return;
     }
     // Do we need to run? Compare the last run timestamp stored in the plugin's options with the current
     // timestamp. If the difference is greater than the cache timeout we shall not execute again.
     $now = time();
     $last = (int) $this->params->get('lastrun', 0);
     // 12 hours - 60*60*12 = 43200
     if (!defined('PLG_SYSTEM_STATS_DEBUG') && abs($now - $last) < 43200) {
         return;
     }
     // Update last run status
     $this->params->set('lastrun', $now);
     $uniqueId = $this->params->get('unique_id', '');
     /*
      * If the unique ID is empty (because we have never submitted a piece of data before or because the refresh button
      * has been used - generate a new ID and store it in the database for future use.
      */
     if (empty($uniqueId)) {
         $uniqueId = hash('sha1', JUserHelper::genRandomPassword(28) . time());
         $this->params->set('unique_id', $uniqueId);
     }
     $query = $this->db->getQuery(true)->update($this->db->quoteName('#__extensions'))->set($this->db->quoteName('params') . ' = ' . $this->db->quote($this->params->toString('JSON')))->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin'))->where($this->db->quoteName('folder') . ' = ' . $this->db->quote('system'))->where($this->db->quoteName('element') . ' = ' . $this->db->quote('stats'));
     try {
         // Lock the tables to prevent multiple plugin executions causing a race condition
         $this->db->lockTable('#__extensions');
     } catch (Exception $e) {
         // If we can't lock the tables it's too risky to continue execution
         return;
     }
     try {
         // Update the plugin parameters
         $result = $this->db->setQuery($query)->execute();
         $this->clearCacheGroups(array('com_plugins'), array(0, 1));
     } catch (Exception $exc) {
         // If we failed to execute
         $this->db->unlockTables();
         $result = false;
     }
     try {
         // Unlock the tables after writing
         $this->db->unlockTables();
     } catch (Exception $e) {
         // If we can't lock the tables assume we have somehow failed
         $result = false;
     }
     // Abort on failure
     if (!$result) {
         return;
     }
     $data = array('unique_id' => $uniqueId, 'php_version' => PHP_VERSION, 'db_type' => $this->db->name, 'db_version' => $this->db->getVersion(), 'cms_version' => JVERSION, 'server_os' => php_uname('s') . ' ' . php_uname('r'));
     // Don't let the request take longer than 2 seconds to avoid page timeout issues
     try {
         // Don't let the request take longer than 2 seconds to avoid page timeout issues
         JHttpFactory::getHttp()->post($this->params->get('url', 'https://developer.joomla.org/stats/submit'), $data, null, 2);
     } catch (UnexpectedValueException $e) {
         // There was an error sending stats. Should we do anything?
         JLog::add('Could not send site statistics to remote server: ' . $e->getMessage(), JLog::WARNING, 'stats');
     } catch (RuntimeException $e) {
         // There was an error connecting to the server or in the post request
         JLog::add('Could not connect to statistics server: ' . $e->getMessage(), JLog::WARNING, 'stats');
     } catch (Exception $e) {
         // An unexpected error in processing; don't let this failure kill the site
         JLog::add('Unexpected error connecting to statistics server: ' . $e->getMessage(), JLog::WARNING, 'stats');
     }
 }
开发者ID:ByteJunk,项目名称:joomla-cms,代码行数:76,代码来源:stats.php


注:本文中的JDatabaseDriver::lockTable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。