Doctrine2:与Sql-Server

时间:2015-07-14 11:28:13

标签: php sql-server doctrine-orm

在Unix上使用Doctrine2连接到MSSQL

我目前正在开发一个在Ubuntu Server(x64)上使用Doctrine2和PHP的项目。需要从外部运行的MSSQL-Server获取数据。

问题

Doctrine2不支持pdo_dblib驱动程序,在类似unix的计算机上也不支持sqlsrvsqlsrv仅限Windows)。就是这样,似乎Doctrine在unix机器上没有内置的MSSQL-Servers支持。

解决方案

这些是我尝试过的解决方案但没有成功。

  

1。为pdo_dblib编写自己的包装并整合到学说的DBAL

     
    

我无法弄清楚如何为教条DBAL编写我自己的驱动程序,平台和架构,但在其文档或谷歌中都找不到任何有用的东西。

  

实际问题

对于没有使用Symfony或其他第三方代码的Doctrine 2 的MSSQL-Servers是否有任何形式的支持?

1 个答案:

答案 0 :(得分:1)

您的原始解决方案实际上并不难实现。我曾尝试使用ODBC连接到SQL Server,这是Linux主机的一个选项,我需要的唯一更改是this file

如果您更新该函数并使用有效的ODBC连接字符串,它将正常工作。当然,通过将该功能设为私有,Doctrine人员并不容易,因此您不得不求助于编辑库或复制/粘贴整个SQL Server驱动程序代码。

也就是说,使用ODBC的SQL Server支持有点差。例如,如果在子查询中使用绑定参数,我会遇到抛出异常的问题。尽管微软的官方驱动程序本身基于ODBC,但它的工作正常。去搞清楚。如果可能,将数据复制到更友好的Linux数据库并在那里使用它。