所以基本上这就是我的问题。我正在寻找一种解决方案,使我们能够连接到SQL Express2008,同时仍然使用MDB2作为我们的数据库抽象层。我需要这样的东西,主要是因为我们仍然需要能够使用MySQL和Postgres (而ORM目前似乎不是一个选项)。
优选地,将有一种同时适用于PHP5.2和PHP5.3的解决方案。
一开始,我沿着php_mysql扩展路走...但是,似乎这在PHP5.3中是不可用的。
php_pdo_mssql似乎不能与MDB2一起使用,所以这似乎已经过时了。
最后,还有微软开发的'SQLSRV‘扩展,虽然看起来似乎有一个MDB2’扩展‘的工作,但它似乎从来没有进入过主分支。
请..。有没有人能给我什么解决方案?
发布于 2010-04-06 19:53:35
对任何其他想要这方面信息的人来说...到目前为止,我已经让SQL Express2008在PHP5.2下与MDB2一起工作。
我还没有尝试连接到远程服务器:到目前为止,我只连接到在本地主机上运行的SQL Express。
我不确定我正在使用的PHP是否附带了php_mssql.dll扩展:不管是哪种情况,我都禁用了它。取而代之的是,我使用了从http://docs.moodle.org/en/Installing_MSSQL_for_PHP上的链接下载的php_dblib.dll。这个库是(来自freetds.org的) FreeTDS的构建。我还没有用它做任何主要的测试,但我可以连接到它,我的一个同事告诉我,他们用它取得了“实际”的成功。
php_dblib.dll为php_mssql.dll提供的mssql_*函数提供了“替换”函数。因此,您需要在启用php_mssql.dll扩展之前禁用php_dblib.dll扩展。
其他需要注意的小事情:
1)虽然大多数关于SQL Express和PHP的文档都指出必须在数据库连接信息的主机部分包含'instance‘名称,但我发现这对我不起作用:实际上,我必须显式地删除"\SQLEXPRESS“。
2)虽然上面的Moodle链接提供了PHP5.3版本的php_dblib.dll,但不幸的是它们是用VC9构建的。我安装的PHP5.3是用VC6构建的,所以我仍然在为PHP5.3构建自己的php_dblib.dll。
无论如何,我希望这能帮助那些有同样问题的人。
https://stackoverflow.com/questions/2562821
复制相似问题