src/Core.php
public static function setDSN($dsn)
        {
            $dsn_details = parse_url($dsn);
            if (!is_array($dsn_details) || !array_key_exists('scheme', $dsn_details)) {
                throw new Exception('This does not look like a valid DSN - cannot read the database type');
            }
            try {
                self::setDriver($dsn_details['scheme']);
                $details = explode(';', $dsn_details['path']);
                foreach ($details as $detail) {
                    $detail_info = explode('=', $detail);
                    if (count($detail_info) != 2) {
                        throw new Exception('This does not look like a valid DSN - cannot read the connection details');
                    }
                    switch ($detail_info[0]) {
                        case 'host':
                            self::setHostname($detail_info[1]);
                            break;
                        case 'port':
                            self::setPort($detail_info[1]);
                            break;
                        case 'dbname':
                            self::setDatabaseName($detail_info[1]);
                            break;
                    }
                }
            } catch (\Exception $e) {
                throw $e;
            }
            self::$dsn = $dsn;
        }
public static function setDSN($dsn)
        {
            $dsn_details = parse_url($dsn);
            if (!is_array($dsn_details) || !array_key_exists('scheme', $dsn_details)) {
                throw new Exception('This does not look like a valid DSN - cannot read the database type');
            }
            try {
                self::setDriver($dsn_details['scheme']);
                $details = explode(';', $dsn_details['path']);
                foreach ($details as $detail) {
                    $detail_info = explode('=', $detail);
                    if (count($detail_info) != 2) {
                        throw new Exception('This does not look like a valid DSN - cannot read the connection details');
                    }
                    switch ($detail_info[0]) {
                        case 'host':
                            self::setHostname($detail_info[1]);
                            break;
                        case 'port':
                            self::setPort($detail_info[1]);
                            break;
                        case 'dbname':
                            self::setDatabaseName($detail_info[1]);
                            break;
                    }
                }
            } catch (\Exception $e) {
                throw $e;
            }
            self::$dsn = $dsn;
        }
public static function setDSN ( $ dsn ) { $ dsn_details = parse_url ( $ dsn ) ; if ( ! is_array ( $ dsn_details ) || ! array_key_exists ( 'scheme' , $ dsn_details ) ) { throw new Exception ( 'This does not look like a valid DSN - cannot read the database type' ) ; } try { self :: setDriver ( $ dsn_details [ 'scheme' ] ) ; $ details = explode ( ';' , $ dsn_details [ 'path' ] ) ; foreach ( $ details as $ detail ) { $ detail_info = explode ( '=' , $ detail ) ; if ( count ( $ detail_info ) != 2 ) { throw new Exception ( 'This does not look like a valid DSN - cannot read the connection details' ) ; } switch ( $ detail_info [ 0 ] ) { case 'host' : self :: setHostname ( $ detail_info [ 1 ] ) ; break ; case 'port' : self :: setPort ( $ detail_info [ 1 ] ) ; break ; case 'dbname' : self :: setDatabaseName ( $ detail_info [ 1 ] ) ; break ; } } } catch ( \ Exception $ e ) { throw $ e ; } self :: $ dsn = $ dsn ; }
Set the DSN

@param string $dsn
Set the DSN