我正在尝试使用 Doctrine 2(用于 Symfony 2)从 linux 机器连接到 MSSQLServer。
我已经安装了 pdo_dblib(FreeTDS/Sybase DB-lib 的 PDO 驱动程序),并且能够通过命令行上的 tsql 和 php cli 连接到数据库服务器。因此我知道这是有效的。
在我的 Symfony/app/config/parameters.ini 文件中,我将 database_driver="pdo_sqlsrv" 指定为数据库驱动程序(我读到这将由 处理db_lib
)但是当尝试运行创建数据库命令时(使用命令php app/console doctrine:database:create
)我我收到错误:
无法为命名连接创建数据库找不到驱动程序
然后我将驱动程序更改为database_driver="pdo_dblib"
,现在我收到错误:
[Doctrine\DBAL\DBALException]
给定的“驱动程序”pdo_dblib 未知,Doctrine 当前仅支持以下驱动程序:pdo_mysql、pdo_sqlite、pdo_pgsql、pdo_oci、oci8、ibm_db2、pdo_ibm、pdo_sqlsrv
所以似乎连接到 MSSQL 我唯一的选择是pdo_sqlsrv
,所以我去安装它。但是,我刚刚在这里发现,
PDO_SQLSRV 扩展只与在 Windows 上运行的 PHP 兼容。
因此,学说支持的驱动程序和可在 linux 上使用的驱动程序似乎是互斥的。通过搜索,到目前为止,我还没有找到任何解决此问题的实例(一个人将问题标记为已解决,但是当我阅读该线程时,他只是将他的开发环境移动到了 windows 框......不完全是我所拥有的心里!)。