当我使用PDO连接到MySQL数据库时,我需要连接的方式是:
$pdoConnection = new PDO("mysql:host=hostname;dbname=databasename",user,password);
但是,对于PostgreSQL,DSN更标准(IMO):
$pdoConnection = new PDO("pgsql:host=hostname;dbname=databasename;user=username;password=thepassword");
MySQL有什么理由不能使用单个字符串吗?或者这只是因为我使用的版本(PHP 5.2,MySQL 5.0,PostgreSQL 8.1)?
作为实现这两者的人,我可以告诉你,原因是通过将字符串传递给postgres(和ODBC),这些数据库的PDO驱动程序代码不需要更新,因为底层库添加了新功能.
由于MySQL没有自己的连接字符串解析代码,我们发明了一种机制,用于将数据传递给底层的MySQL函数调用,这些调用具有一个具有固定参数的非常特定的API.
没有意外; 这是非常慎重的.