CakePHP 2.2 MSSQL / PDO替代品?

时间:2012-11-23 15:49:24

标签: php cakephp pdo

我们有一个CakePHP 1.3应用程序,我们正在升级到2.2.3。我们的应用程序的一个要求是能够查询单独的应用程序的MSSQL数据库,以进行一些身份验证和提取用户数据。

经过两天浪费时间研究和骚扰我们的webhost来安装PHP / PDO / MSSQL库(我们已经有MySQL的PDO,sqlite和sqlite 2),它似乎看起来非常严峻。

TL; DR:我们需要找到一种在Linux下进行PDO MSSQL查询的方法。

开始咆哮:

令我疯狂的是: CakePHP为了使用PDO制作所有数据库包装器而开发兼容的MSSQL 。如果您在Linux服务器上有一个1.3应用程序,它很高兴地连接到MSSQL数据库并希望将其升级到2.2,那么您将无法再连接到该数据库,因为显然使用PDO比确保不使用PDO更重要破坏用户的现有功能。

CakePHP 2.x Docs不会警告用户这个陷阱,他们只是说你需要PDO。

应该注意到PDO / MSSQL在Linux下不起作用,或者应该有一个与CakePHP库存一起提供的Sqlserver.php数据源的替代品,以便升级他们的应用程序的人有机会获得他们的应用程序再次在2.2x下运行

我现在真的很喜欢这个,因为我浪费了一周的时间从1.3移植到2.2现在看起来我要么必须手动编写查询并忽略CakePHP的伟大数据库抽象,要么我需要转换我的所有工作都回到1.3并放弃了最新版CakePHP的所有新改进。

2 个答案:

答案 0 :(得分:3)

诀窍是:

sudo apt-get install php5-sybase

由于某种原因,扩展名不是mssql

sybase对我来说很好

答案 1 :(得分:0)

您需要做的是安装Microsoft的ODBC驱动程序并设置odbc连接字符串。这个过程可能有点棘手,但确实有效,而且驱动程序稳定。

然后你可以使用$ dbh = new PDO(“odbc:CONNECTIONNAME”,$ user,$ password);通过PDO连接。

一旦对其进行排序,我认为您仍然可以使用MSSQL数据源,但修改连接字符串。