/** * 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 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(); } }