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;
}