Преобразовать PEAR :: DSN в стиле DB в PDO-DSN - PullRequest
0 голосов
/ 03 января 2012

Я ищу способ преобразования PEAR: DSN в стиле DB / MDB2

phptype://username:password@hostspec/database

в формат, поддерживаемый PHP PDO (, например, в этом случае mysql )

$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';

Я искал существующую реализацию, но ничего не смог найти.

1 Ответ

0 голосов
/ 03 января 2012

Я решил проблему с этим кодом, но он еще не проверен должным образом:

preg_match('|([a-z]+)://([^:]*)(:(.*))?@([A-Za-z0-9\.-]*)(/([0-9a-zA-Z_/\.]*))|',
     $dsn,$matches);
$dsn=array(
    $matches[1].':host='.$matches[5].';dbname='.$matches[7],
    $matches[2],
    $matches[4]
);
...