警告:未加载dbx:module'mssql'

时间:2012-11-26 14:44:53

标签: php sql-server database

我正在尝试使用带有DBX的PHP连接到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");

有什么想法解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

我建议使用DBX not 。它是一个死模块,不应该被现代代码使用。

DBX是removed from standard PHP in version 5.1。如果你安装了它,那意味着有人不顾一切地将它作为PECL模块安装,或者你使用的是非常旧的PHP版本。

requirements page上,它声明:

  

为了能够将数据库与dbx-module一起使用,该模块必须链接或加载到PHP中

DBX支持与MS SQL Server通信的唯一模块是 mssql_ family。该扩展名为no longer available in Windows PHP versions 5.3 or later

如果您使用的是Linux,并且正在使用操作系统提供的PHP版本,那么您可以安装它。查找php-mssqlphp53-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编写代码。