我目前正在开发一个在Ubuntu Server(x64)上使用Doctrine2和PHP的项目。需要从外部运行的MSSQL-Server获取数据。
Doctrine2不支持pdo_dblib
驱动程序,在类似unix的计算机上也不支持sqlsrv
(sqlsrv
仅限Windows)。就是这样,似乎Doctrine在unix机器上没有内置的MSSQL-Servers支持。
这些是我尝试过的解决方案但没有成功。
1。为
pdo_dblib
编写自己的包装并整合到学说的DBAL
我无法弄清楚如何为教条
DBAL
编写我自己的驱动程序,平台和架构,但在其文档或谷歌中都找不到任何有用的东西。
对于没有使用Symfony或其他第三方代码的Doctrine 2 的MSSQL-Servers是否有任何形式的支持?
答案 0 :(得分:1)
您的原始解决方案实际上并不难实现。我曾尝试使用ODBC连接到SQL Server,这是Linux主机的一个选项,我需要的唯一更改是this file。
如果您更新该函数并使用有效的ODBC连接字符串,它将正常工作。当然,通过将该功能设为私有,Doctrine人员并不容易,因此您不得不求助于编辑库或复制/粘贴整个SQL Server驱动程序代码。
也就是说,使用ODBC的SQL Server支持有点差。例如,如果在子查询中使用绑定参数,我会遇到抛出异常的问题。尽管微软的官方驱动程序本身基于ODBC,但它的工作正常。去搞清楚。如果可能,将数据复制到更友好的Linux数据库并在那里使用它。