InitializeDB() public static method

初始化数据库连接
public static InitializeDB ( string $type ) : object
$type string 数据连接类型
return object or null
Exemplo n.º 1
0
 /**
  * 连接数据库
  * @return bool
  * @throws Exception
  */
 public function OpenConnect()
 {
     if ($this->isconnected) {
         return false;
     }
     if (!$this->option['ZC_DATABASE_TYPE']) {
         return false;
     }
     switch ($this->option['ZC_DATABASE_TYPE']) {
         case 'sqlite':
         case 'sqlite3':
         case 'pdo_sqlite':
             $this->db = ZBlogPHP::InitializeDB($this->option['ZC_DATABASE_TYPE']);
             if ($this->db->Open(array($this->usersdir . 'data/' . $this->option['ZC_SQLITE_NAME'], $this->option['ZC_SQLITE_PRE'])) == false) {
                 $this->ShowError(69, __FILE__, __LINE__);
             }
             break;
         case 'pgsql':
         case 'pdo_pgsql':
             $this->db = ZBlogPHP::InitializeDB($this->option['ZC_DATABASE_TYPE']);
             if ($this->db->Open(array($this->option['ZC_PGSQL_SERVER'], $this->option['ZC_PGSQL_USERNAME'], $this->option['ZC_PGSQL_PASSWORD'], $this->option['ZC_PGSQL_NAME'], $this->option['ZC_PGSQL_PRE'], $this->option['ZC_PGSQL_PORT'], $this->option['ZC_PGSQL_PERSISTENT'])) == false) {
                 $this->ShowError(67, __FILE__, __LINE__);
             }
             break;
         case 'mysql':
         case 'mysqli':
         case 'pdo_mysql':
         default:
             $this->db = ZBlogPHP::InitializeDB($this->option['ZC_DATABASE_TYPE']);
             if ($this->db->Open(array($this->option['ZC_MYSQL_SERVER'], $this->option['ZC_MYSQL_USERNAME'], $this->option['ZC_MYSQL_PASSWORD'], $this->option['ZC_MYSQL_NAME'], $this->option['ZC_MYSQL_PRE'], $this->option['ZC_MYSQL_PORT'], $this->option['ZC_MYSQL_PERSISTENT'], $this->option['ZC_MYSQL_ENGINE'])) == false) {
                 $this->ShowError(67, __FILE__, __LINE__);
             }
             break;
     }
     $this->isconnected = true;
     return true;
 }
Exemplo n.º 2
0
function Setup4()
{
    global $zbp;
    ?>
<dl>
  <dt></dt>
  <dd id="ddleft"><div id="headerimg"><img src="../zb_system/image/admin/install.png" alt="Z-BlogPHP" />
  <strong><?php 
    echo $zbp->lang['zb_install']['install_program'];
    ?>
</strong></div>
    <div class="left"><?php 
    echo $zbp->lang['zb_install']['install_progress'];
    ?>
&nbsp;</div>
    <div id="setup4"  class="left"></div>
    <p><b><?php 
    echo $zbp->lang['zb_install']['install_license'];
    ?>
</b> » <b><?php 
    echo $zbp->lang['zb_install']['environment_check'];
    ?>
</b> » <b><?php 
    echo $zbp->lang['zb_install']['db_build_set'];
    ?>
</b> » <b><?php 
    echo $zbp->lang['zb_install']['install_result'];
    ?>
</b></p>
  </dd>
  <dd id="ddright">
    <div id="title"><?php 
    echo $zbp->lang['zb_install']['install_result'];
    ?>
</div>
    <div id="content">
      <?php 
    $isInstallFlag = true;
    $zbp->option['ZC_DATABASE_TYPE'] = GetVars('dbtype', 'POST');
    $cts = '';
    switch ($zbp->option['ZC_DATABASE_TYPE']) {
        case 'mysql':
        case 'mysqli':
        case 'pdo_mysql':
            $cts = file_get_contents($GLOBALS['blogpath'] . 'zb_system/defend/createtable/mysql.sql');
            if ($zbp->option['ZC_YUN_SITE'] != '') {
                break;
            }
            $zbp->option['ZC_MYSQL_SERVER'] = GetVars('dbmysql_server', 'POST');
            if (strpos($zbp->option['ZC_MYSQL_SERVER'], ':') !== false) {
                $servers = explode(':', $zbp->option['ZC_MYSQL_SERVER']);
                $zbp->option['ZC_MYSQL_SERVER'] = trim($servers[0]);
                $zbp->option['ZC_MYSQL_PORT'] = (int) $servers[1];
                if ($zbp->option['ZC_MYSQL_PORT'] == 0) {
                    $zbp->option['ZC_MYSQL_PORT'] = 3306;
                }
                unset($servers);
            }
            $zbp->option['ZC_MYSQL_USERNAME'] = trim(GetVars('dbmysql_username', 'POST'));
            $zbp->option['ZC_MYSQL_PASSWORD'] = trim(GetVars('dbmysql_password', 'POST'));
            $zbp->option['ZC_MYSQL_NAME'] = trim(str_replace(array('\'', '"'), array('', ''), GetVars('dbmysql_name', 'POST')));
            $zbp->option['ZC_MYSQL_PRE'] = trim(str_replace(array('\'', '"'), array('', ''), GetVars('dbmysql_pre', 'POST')));
            if ($zbp->option['ZC_MYSQL_PRE'] == '') {
                $zbp->option['ZC_MYSQL_PRE'] == 'zbp_';
            }
            $zbp->option['ZC_MYSQL_ENGINE'] = GetVars('dbengine', 'POST');
            $cts = str_replace('MyISAM', $zbp->option['ZC_MYSQL_ENGINE'], $cts);
            $zbp->db = ZBlogPHP::InitializeDB($zbp->option['ZC_DATABASE_TYPE']);
            if ($zbp->db->CreateDB($zbp->option['ZC_MYSQL_SERVER'], $zbp->option['ZC_MYSQL_PORT'], $zbp->option['ZC_MYSQL_USERNAME'], $zbp->option['ZC_MYSQL_PASSWORD'], $zbp->option['ZC_MYSQL_NAME']) == true) {
                echo $zbp->lang['zb_install']['create_db'] . $zbp->option['ZC_MYSQL_NAME'] . "<br/>";
            }
            $zbp->db->dbpre = $zbp->option['ZC_MYSQL_PRE'];
            $zbp->db->Close();
            break;
        case 'sqlite':
            $cts = file_get_contents($GLOBALS['blogpath'] . 'zb_system/defend/createtable/sqlite.sql');
            $cts = str_replace(' autoincrement', '', $cts);
            $zbp->option['ZC_SQLITE_NAME'] = trim(GetVars('dbsqlite_name', 'POST'));
            $zbp->option['ZC_SQLITE_PRE'] = trim(GetVars('dbsqlite_pre', 'POST'));
            break;
        case 'sqlite3':
        case 'pdo_sqlite':
            $cts = file_get_contents($GLOBALS['blogpath'] . 'zb_system/defend/createtable/sqlite.sql');
            $zbp->option['ZC_SQLITE_NAME'] = trim(GetVars('dbsqlite_name', 'POST'));
            $zbp->option['ZC_SQLITE_PRE'] = trim(GetVars('dbsqlite_pre', 'POST'));
            break;
        default:
            $isInstallFlag = false;
            break;
    }
    if ($isInstallFlag) {
        $zbp->OpenConnect();
        $zbp->ConvertTableAndDatainfo();
        if (CreateTable($cts)) {
            InsertInfo();
            SaveConfig();
        }
        $zbp->CloseConnect();
    } else {
        echo '<p>还没有选择数据库类型,请后退重试。</p><p><a href="javascript:history.go(-1)">点击这里后退</a></p>';
    }
    ?>

    </div>
    <div id="bottom">
      <input type="button" name="next" onClick="window.location.href='../'" id="netx" value="<?php 
    echo $zbp->lang['zb_install']['ok'];
    ?>
" />
    </div>
  </dd>
</dl>
<?php 
}
Exemplo n.º 3
0
 /**
  * 连接数据库
  * @return bool
  * @throws Exception
  */
 public function OpenConnect()
 {
     if ($this->isconnected) {
         return false;
     }
     if (!$this->option['ZC_DATABASE_TYPE']) {
         return false;
     }
     switch ($this->option['ZC_DATABASE_TYPE']) {
         case 'sqlite':
         case 'sqlite3':
         case 'pdo_sqlite':
             $this->db = ZBlogPHP::InitializeDB($this->option['ZC_DATABASE_TYPE']);
             if ($this->db->Open(array($this->usersdir . 'data/' . $this->option['ZC_SQLITE_NAME'], $this->option['ZC_SQLITE_PRE'])) == false) {
                 $this->ShowError(69, __FILE__, __LINE__);
             }
             break;
         case 'pgsql':
         case 'pdo_pgsql':
             $this->db = ZBlogPHP::InitializeDB($this->option['ZC_DATABASE_TYPE']);
             if ($this->db->Open(array($this->option['ZC_PGSQL_SERVER'], $this->option['ZC_PGSQL_USERNAME'], $this->option['ZC_PGSQL_PASSWORD'], $this->option['ZC_PGSQL_NAME'], $this->option['ZC_PGSQL_PRE'], $this->option['ZC_PGSQL_PORT'], $this->option['ZC_PGSQL_PERSISTENT'])) == false) {
                 $this->ShowError(67, __FILE__, __LINE__);
             }
             break;
         case 'mysql':
         case 'mysqli':
         case 'pdo_mysql':
         default:
             $this->db = ZBlogPHP::InitializeDB($this->option['ZC_DATABASE_TYPE']);
             if ($this->db->Open(array($this->option['ZC_MYSQL_SERVER'], $this->option['ZC_MYSQL_USERNAME'], $this->option['ZC_MYSQL_PASSWORD'], $this->option['ZC_MYSQL_NAME'], $this->option['ZC_MYSQL_PRE'], $this->option['ZC_MYSQL_PORT'], $this->option['ZC_MYSQL_PERSISTENT'], $this->option['ZC_MYSQL_ENGINE'])) == false) {
                 $this->ShowError(67, __FILE__, __LINE__);
             }
             break;
     }
     //add utf8mb4
     if ($this->db->type == 'mysql' && version_compare($this->db->version, '5.5.3') < 0) {
         Add_Filter_Plugin('Filter_Plugin_DbSql_Filter', 'utf84mb_filter');
         Add_Filter_Plugin('Filter_Plugin_Edit_Begin', 'utf84mb_fixHtmlSpecialChars');
     }
     $this->isconnected = true;
     return true;
 }