LazyRecord\Utils::breakDSN PHP Method

breakDSN() public static method

public static breakDSN ( $dsn )
    public static function breakDSN($dsn)
    {
        // break DSN string down into parameters
        $params = array();
        if (strpos($dsn, ':') === false) {
            $params['driver'] = $dsn;
            return $params;
        }
        list($driver, $paramString) = explode(':', $dsn, 2);
        $params['driver'] = $driver;
        if ($paramString === ':memory:') {
            $params[':memory:'] = 1;
            return $params;
        }
        $paramPairs = explode(';', $paramString);
        foreach ($paramPairs as $pair) {
            if (preg_match('#(\\S+)=(\\S+)#', $pair, $regs)) {
                $params[$regs[1]] = $regs[2];
            }
        }
        return $params;
    }

Usage Example

Beispiel #1
0
 public function createDB($ds)
 {
     if (empty($ds)) {
         return;
     }
     $dbutil = new DBUtil();
     $user = @$ds['user'];
     $pass = @$ds['pass'];
     if (isset($ds['dsn'])) {
         $params = Utils::breakDSN($ds['dsn']);
         $ds = array_merge($ds, $params);
     }
     if (isset($ds[':memory:'])) {
         $this->logger->info('skip :memory: database');
         return;
     }
     if (!isset($ds['database'])) {
         $this->logger->notice('database is not defined.');
         return;
     }
     if (!isset($ds['host'])) {
         $ds['host'] = 'localhost';
     }
     $this->logger->info("creating database {$ds['database']}...");
     $dbutil->create($ds['driver'], array('username' => $user, 'password' => $pass, 'database' => $ds['database'], 'host' => $ds['host']));
 }
All Usage Examples Of LazyRecord\Utils::breakDSN