Beispiel #1
0
    /**
     * 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;
    }
Beispiel #2
0
 /**
  * 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];
 }