我正在尝试使用PHP和DBX连接到MS SQL Server。使用phpinf(),我可以注意到dbx是启用的:
dbx
dbx support enabled
dbx version 1.0.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT.但当我尝试连接时,出现以下错误:
Warning: dbx: module 'mssql' not loaded.代码如下:
dbx_connect("mssql","host","database","user","password");有什么办法解决这个问题吗?
发布于 2012-12-11 17:18:58
我的建议是不使用DBX。它是一个死模块,不应该被现代代码使用。
DBX为 in version 5.1。如果您已经安装了它,这意味着有人特意将其作为PECL模块安装,或者您使用的是非常旧的PHP版本。
在requirements page上,它声明:
为了能够将数据库与dbx模块一起使用,模块必须链接或加载到PHP中
DBX支持与MS SQL Server对话的唯一模块是旧的mssql_ family。这个扩展名就是no longer available in Windows PHP versions 5.3 or later。
如果您使用的是Linux,并且使用的是操作系统提供的PHP发行版,那么您也许能够安装它。查找php-mssql或php53-mssql。当您在包描述中搜索“FreeTDS”时,它也可能会显示出来。如果没有可用的软件包,您可能会陷入痛苦的世界。Getting mssql_ compiled and installed is quite a bear。
然而,还有更好的替代方案。
DBX的目标是提供一组统一的函数,使您能够与大量现有的PHP数据库适配器对话。这一角色现在由PDO担任。如果你在Windows上,你应该使用PDO_SQLSRV。如果你不在Windows上,你可以使用PDO_DBLIB (它使用与mssql_家族相同的后端)或PDO_ODBC。如果你以前从未使用过PDO,这里有一些不错的tutorials。这是针对MySQL用户的,但它仍然适用于其他数据库。
如果您编写的代码只打算在MS SQL Server上运行,而您在Windows上运行PHP,那么您也可以考虑使用sqlsrv_ family of functions编写它。
https://stackoverflow.com/questions/13567167
复制相似问题