将PEAR :: DB风格的DSN转换为PDO-DSN

时间:2012-01-03 00:41:41

标签: php sql pdo pear dsn

我正在寻找一种如何转换PEAR:DB / MDB2-style DSN

的方法
phptype://username:password@hostspec/database

进入PHP PDO支持的格式(such as this mysql case

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

我正在寻找一些现有的实施但却找不到任何东西。

1 个答案:

答案 0 :(得分:0)

我已经解决了这段代码的问题,但还没有正确测试:

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]
);