/** * Prepare connection parameters. * See: http://www.propelorm.org/ticket/1360 * * @param array $params * @return array */ public function prepareParams($params) { $params = parent::prepareParams($params); if (isset($params['settings']['charset']['value'])) { if (version_compare(PHP_VERSION, '5.3.6', '<')) { throw new PropelException(<<<EXCEPTION Connection option "charset" cannot be used for MySQL connections in PHP versions older than 5.3.6. Please refer to http://www.propelorm.org/ticket/1360 for instructions and details about the implications of using a SET NAMES statement in the "queries" setting. EXCEPTION ); } else { if (strpos($params['dsn'], ';charset=') === false) { $params['dsn'] .= ';charset=' . $params['settings']['charset']['value']; unset($params['settings']['charset']); } } } return $params; }
/** * Returns database adapter for a specific datasource. * * @param string The datasource name. * * @return DBAdapter The corresponding database adapter. * * @throws PropelException If unable to find DBdapter for specified db. */ public static function getDB($name = null) { if ($name === null) { $name = self::getDefaultDB(); } if (!isset(self::$adapterMap[$name])) { if (!isset(self::$configuration['datasources'][$name]['adapter'])) { throw new PropelException("Unable to find adapter for datasource [" . $name . "]."); } $db = DBAdapter::factory(self::$configuration['datasources'][$name]['adapter']); // register the adapter for this name self::$adapterMap[$name] = $db; } return self::$adapterMap[$name]; }