【问题标题】:Convert PEAR::DB-style DSN into PDO-DSN将 PEAR::DB 样式的 DSN 转换为 PDO-DSN
【发布时间】:2012-01-22 03:30:26
【问题描述】:

我正在寻找一种如何转换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';

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

【问题讨论】:

  • 我不知道任何现有的解决方案,尽管在您处理源字符串和目标字符串的特定、已知格式时,这似乎是一个非常快速的解决方案来推出您自己的解决方案...也许是一个正则表达式。
  • @rdlowrey,是的,这是我必须做的。下面提供的代码。看看其他一些实现会很好,因为我不确定我是否正确处理了所有可能的格式。

标签: php sql pdo pear dsn


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 2010-09-19
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多