public function findIdListByExample(OW_Example $example, $cacheLifeTime = 0, $tags = array()) { if ($example === null) { throw new InvalidArgumentException('argument must not be null'); } $sql = 'SELECT `id` FROM ' . $this->getTableName() . $example; return $this->dbo->queryForColumnList($sql, array(), $cacheLifeTime, $tags); }
/** * @param array $fields * @param string $value * @return OW_Example */ public function andFieldMatchAgainst(array $fields, $value) { $fieldsString = ''; foreach ($fields as $field) { $fieldsString = '`' . $this->dbo->escapeString($field) . '`,'; } $fieldsString = mb_substr($fieldsString, 0, -1); $this->criteriaString .= ' AND MATCH(' . $fieldsString . ') AGAINST (\'' . $this->dbo->escapeString($value) . '\')'; return $this; }
public function addFileCategory($idFile, $idCategory) { if (isset($idFile) && !empty($idFile)) { $tableFileCategory = OW_DB_PREFIX . 'spdownload_files_categories'; $file = new SPDOWNLOAD_CTRL_Object(); $file->fileId = $idFile; $file->categoryId = $idCategory; OW_Database::insert($tableFileCategory, $file); } }
/** * Returns the instance of class for $params * * @param array $params ( host, username, password, dbname, [socket], [port] ) * * @return OW_Database * */ public static function getInstance($params) { if (!isset(self::$classInstances)) { self::$classInstances = array(); } ksort($params); $connectionKey = serialize($params); if (empty(self::$classInstances[$connectionKey])) { if (!isset($params['host']) || !isset($params['username']) || !isset($params['password']) || !isset($params['dbname'])) { throw new InvalidArgumentException("Can't connect to database. Please provide valid connection attributes."); } self::$classInstances[$connectionKey] = new self($params); } return self::$classInstances[$connectionKey]; }
private function setDevMode($mode = null) { $mode = $mode ? intval($mode) : 1; $this->db->query("UPDATE `{$this->dbPrefix}base_config` SET `value` = 1 WHERE `key` = 'base' AND `name` = 'dev_mode'", array("mode" => $mode)); }
/** * Returns DB access object with default connection. * * @return OW_Database */ public static function getDbo() { if (self::$dboInstance === null) { $params = array('host' => OW_DB_HOST, 'username' => OW_DB_USER, 'password' => OW_DB_PASSWORD, 'dbname' => OW_DB_NAME); if (defined('OW_DB_PORT') && OW_DB_PORT !== null) { $params['port'] = OW_DB_PORT; } if (defined('OW_DB_SOCKET')) { $params['socket'] = OW_DB_SOCKET; } if (OW_DEV_MODE || OW_PROFILER_ENABLE) { $params['profilerEnable'] = true; } if (OW_DEBUG_MODE) { $params['debugMode'] = true; } self::$dboInstance = OW_Database::getInstance($params); } return self::$dboInstance; }
public function test($key) { return $this->dbo->queryForColumn("SELECT `id` FROM `" . $this->getCacheTableName() . "` WHERE `key` = :key AND `expireTimestamp` >= :ts", array('key' => $key, 'ts' => time())) ? true : false; }
public function db() { $this->setPageTitle('Database'); INSTALL::getStepIndicator()->activate('db'); $fieldData = array(); $fieldData['db_prefix'] = 'ow_'; $sessionData = INSTALL::getStorage()->getAll(); $fieldData = array_merge($fieldData, $sessionData); $this->assign('data', $fieldData); $errors = array(); if (OW::getRequest()->isPost()) { $data = $_POST; $data = array_filter($data, 'trim'); $success = true; if (empty($data['db_host']) || !preg_match('/^[^:]+?(\\:\\d+)?$/', $data['db_host'])) { $errors[] = 'db_host'; } if (empty($data['db_user'])) { $errors[] = 'db_user'; } if (empty($data['db_name'])) { $errors[] = 'db_name'; } if (empty($data['db_prefix'])) { $errors[] = 'db_prefix'; } $this->processData($data); if (empty($errors)) { $hostInfo = explode(':', $data['db_host']); try { $dbo = OW_Database::getInstance(array('host' => $hostInfo[0], 'port' => empty($hostInfo[1]) ? null : $hostInfo[1], 'username' => $data['db_user'], 'password' => empty($data['db_password']) ? '' : $data['db_password'], 'dbname' => $data['db_name'])); $existingTables = $dbo->queryForColumnList("SHOW TABLES LIKE '{$data['db_prefix']}base_%'"); if (!empty($existingTables)) { INSTALL::getFeedback()->errorMessage('This database should be empty _especially_ if you try to reinstall Oxwall.'); $this->redirect(); } } catch (InvalidArgumentException $e) { INSTALL::getFeedback()->errorMessage('Could not connect to Database<div class="feedback_error">Error: ' . $e->getMessage() . '</div>'); $this->redirect(); } } if (empty($errors)) { $this->redirect(OW::getRouter()->urlForRoute('install')); } foreach ($errors as $flag) { INSTALL::getFeedback()->errorFlag($flag); } $this->redirect(); } }