sql-server-2000 - 如何从 PHP 5.3 及更高版本连接到 MSSQL 2000

标签 sql-server-2000 upgrade compatibility php-5.3 sqlsrv

我有一个建立在 MS SQL Server 2000 上的遗留业务应用程序。我有一些基于 web 的实用程序,它们使用带有 mssql 扩展的 PHP 5.2 访问这个数据库。

我需要重新安装网络服务器,我期待升级到 PHP 5.4。不幸的是,PHP 5.3 及更高版本不支持 mssql 扩展。有sqlsrv extension available form Microsoft ,但说明只支持访问 SQL Server 2005 及更高版本。

如何从 PHP 5.4 连接到我的 SQL Server 2000?有没有人已经解决了这个问题?

最佳答案

这是一个非常复杂的问题。以下是(不)兼容性的详细信息,因此其他人可能会花更少的时间进行搜索和尝试。

来自 Microsoft 的 PHP 扩展 sqlsrv

sqlsrv 存在两个(+ 一个非官方)版本,它们仅与 32 位 PHP 兼容。目前没有适用于 64 位 PHP 的版本。

  • sqlsrv 2.0 版与 PHP 5.2.4 到 5.3.x 和 SQL Native 客户端 2008 R2 兼容,以连接到 Microsoft SQL Server 2000、2005 或 2008。
  • sqlsrv 3.0 版兼容 PHP 5.3.0 到 5.4.x 和 SQL Native client 2012 以连接到 Microsoft SQL Server 2005、2008、2008 R2 和 SQL Server 2012。
  • 暂无官方版本支持 PHP 5.5
  • 有一个unofficial version of SQLSRV 3.0 on Rob's Area不需要 SQL Native 客户端 2012,但应该与以前的 SQL Native 客户端一起运行。我还没有尝试这个。

  • PHP 的 ODBC 扩展

    使用 PHP 5.4 访问 SQL Server 2000 的另一种方法是通过 odbc 扩展。可以使用 SQL Server 2000 的三个 ODBC 驱动程序进行连接:
  • 预装 Windows 2008 R2 的 SQL Server ODBC 客户端版本 6.00
  • SQL Server Native Client 9.0(SQL Server 2005 功能包)
  • SQL Server Native Client 10.0(SQL Server 2008 R2 功能包)

  • 每个 ODBC 驱动程序的连接代码:
    $connection_string = 'DRIVER={SQL Server};SERVER=mbsql;DATABASE=vg1';
    $connection_string = 'DRIVER={SQL Native Client};SERVER=mbsql;DATABASE=vg1';
    $connection_string = 'DRIVER={SQL Server Native Client 10.0};SERVER=mbsql;DATABASE=vg1';
    $connection = odbc_connect( $connection_string, $user, $pass );
    

    这些连接适用于 PHP 32 位和 64 位。我还没有测试哪个是最好的。

    关于sql-server-2000 - 如何从 PHP 5.3 及更高版本连接到 MSSQL 2000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783613/

    相关文章:

    svn - 升级到 SVN 1.5

    mysql - 如何将我在 Debian 上安装的 MySQL 升级到新的构建版本?

    upgrade - docker升级命令

    python - 与 ctypes 一起使用的 dll 的字符串输入的 Py2/3 兼容性

    matlab - 检查与 Matlab 版本兼容性的工具?

    sql-server - 为什么使用 "fake table"ObjectProperty 确定某些系统表为 "TableIsFake"?

    SQL Server 不能在本地字符串变量中存储超过 4000 个字符

    sql - 如何在 SQL Server 2000 中生成一个填充有日期的临时表?

    windows-vista - 有没有办法让 Server 2008 在安装程序中“显示”为 Vista?

    search - 如何查找存储过程的使用位置