function _db_custom_connection($db_name, $params = []) { if (!$db_name) { return false; } if (isset($this->_connections[$db_name])) { return $this->_connections[$db_name]; } $instance = null; $db_class = load_db_class(); if ($db_class) { $instance = new $db_class('mysql5'); $instance->connect(['name' => $db_name, 'prefix' => ''] + (array) $params); } $this->_connections[$db_name] = $instance; return $instance; }
function db_geonames($tbl_name = '') { $_instance =& $GLOBALS[__FUNCTION__]; if (is_null($_instance)) { $db_class = load_db_class(); if ($db_class) { $_instance = new $db_class('mysql5', DB_PREFIX_GEONAMES); $_instance->DB_PREFIX = DB_PREFIX_GEONAMES; $_instance->connect(DB_HOST_GEONAMES, DB_USER_GEONAMES, DB_PSWD_GEONAMES, DB_NAME_GEONAMES, true); } else { $_instance = false; } } if (!is_object($_instance)) { return $tbl_name ? $tbl_name : new yf_missing_method_handler(__FUNCTION__); } return $tbl_name ? $_instance->_real_name($tbl_name) : $_instance; }
/** */ public static function _connect($params = []) { self::$DB_NAME = $params['name'] ?: DB_NAME; if ($params['driver']) { self::$DB_DRIVER = $params['driver']; } $db_class = load_db_class(); self::$db = new $db_class(self::$DB_DRIVER); self::$db->ALLOW_AUTO_CREATE_DB = true; self::$db->NO_AUTO_CONNECT = true; self::$db->RECONNECT_NUM_TRIES = 1; self::$db->CACHE_TABLE_NAMES = false; self::$db->ERROR_AUTO_REPAIR = false; self::$db->FIX_DATA_SAFE = true; self::$db->NO_CACHE = true; self::$db->_init(); if (false !== strpos(self::$DB_DRIVER, 'mysql')) { return self::_connect_mysql($params); } elseif (false !== strpos(self::$DB_DRIVER, 'sqlite')) { return self::_connect_sqlite($params); } elseif (false !== strpos(self::$DB_DRIVER, 'pgsql')) { return self::_connect_pgsql($params); } }