2010-04-01 53 views
0

所以基本上这是我的问题。我正在寻找一种解决方案,使我们能够连接SQL Express 2008,同时仍然使用MDB2作为我们的数据库抽象层。我需要这样的东西,主要是因为我们仍然需要能够使用MySQL和Postgres(并且在这个时候ORM似乎不是一种选择)。MDB2与SQL Express 2008

最好是有一个适用于PHP5.2和PHP5.3的解决方案。

起初,我去了php_mysql扩展道路......它似乎,但似乎在PHP 5.3中不可用。

php_pdo_mssql似乎无法与MDB2一起使用,所以这似乎是失败的。

最后,还有MS开发的'SQLSRV'扩展,虽然看起来好像在一个点上有MDB2'扩展'的工作,但它似乎并没有进入主分支。

请......有没有人有任何解决方案给我?

+0

尝试连接到SQL Express 2008时遇到了什么问题? – Oded 2010-04-01 18:53:01

+0

我可以很好地连接到服务器管理工​​作室,但是当我尝试在PHP中执行时,它会以'无法连接'错误超时。不幸的是,现在我已经远离了有害的代码,所以我无法给出确切的答案:( – Narcissus 2010-04-01 19:27:33

回答

0

对于其他人在寻找这方面的信息...到目前为止,我已经得到SQL Express 2008与在PHP 5.2下运行的MDB2一起工作。

我还没有尝试连接到远程服务器:到目前为止,我只连接到在本地主机上运行的SQL Express。

我不确定我使用的php是否附带php_mssql.dll扩展名或者不是:无论如何,我禁用了它。相反,我使用从http://docs.moodle.org/en/Installing_MSSQL_for_PHP上的链接下载的php_dblib.dll。这个库是FreeTDS的一个版本(来自freetds.org)。我还没有做过任何重大的测试,但我可以连接到它,并且有一位同事告诉我他们正在'实际'取得成功。

php_dblib.dll为php_mssql.dll提供的mssql_ *函数提供'替换'函数。因此,在启用php_dblib.dll之前,您需要禁用php_mssql.dll扩展。

其他小事情需要注意:

1),而你必须包含在数据库连接信息的主机部分的“实例”名称的SQL Express和PHP状态大多数文档,我发现,这确实不适合我:实际上,我必须明确删除“\ SQLEXPRESS”。

2)虽然上面的Moodle链接提供了php_dblib.dll的PHP 5.3版本,不幸的是它们是用VC9构建的。我使用VC6安装了PHP 5.3,因此我仍在为PHP 5.3构建自己的php_dblib.dll。

无论如何,我希望这可以帮助有同样问题的人。