示例#1
0
 /**
  * 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;
 }
示例#2
0
文件: install.php 项目: vazahat/dudex
 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();
     }
 }