You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP 8.1连接MS SQL Server 2008 R2?

PHP 8.1连接SQL Server 2008 R2的可行方案

由于官方sqlsrv扩展从5.10版本(适配PHP8.1的最低版本)开始不再支持SQL Server 2008 R2,你可以通过以下几种方案解决连接问题:

方案一:使用ODBC驱动替代sqlsrv扩展

这是最推荐的方案,无需降级PHP版本,兼容性更强:

  1. 安装支持SQL Server 2008 R2的ODBC驱动,推荐Microsoft ODBC Driver 11 for SQL Server(该版本明确支持2008 R2,可兼容PHP8.1)
  2. 启用WAMP中PHP的ODBC相关扩展:
    • 打开php.ini,取消extension=pdo_odbc和extension=odbc的注释
    • 重启WAMP服务
  3. 使用PDO_ODBC或原生ODBC函数连接数据库:
    • PDO_ODBC示例代码:
      try {
          $dsn = 'odbc:Driver={ODBC Driver 11 for SQL Server};Server=你的SQL服务器地址;Database=目标数据库名;UID=账号;PWD=密码';
          $pdo = new PDO($dsn);
          $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          echo "数据库连接成功";
      } catch(PDOException $e) {
          die("连接失败: " . $e->getMessage());
      }
      
    • 原生ODBC函数示例代码:
      $conn = odbc_connect(
          "Driver={ODBC Driver 11 for SQL Server};Server=你的SQL服务器地址;Database=目标数据库名;",
          "账号",
          "密码"
      );
      if (!$conn) {
          die("连接失败: " . odbc_errormsg());
      }
      

方案二:降级PHP版本适配旧版sqlsrv扩展

如果必须使用sqlsrv扩展,可调整PHP版本:

  1. 将WAMP中的PHP版本降级到8.0(支持SQL Server 2008 R2的sqlsrv最高版本是5.9,该版本适配PHP7.4~8.0)
  2. 下载对应架构(x86/x64)的sqlsrv_5.9扩展文件,放入WAMP的PHP扩展目录
  3. 在php.ini中添加extension=sqlsrv和extension=pdo_sqlsrv,重启WAMP服务
  4. 即可用常规sqlsrv连接代码操作数据库

方案三:搭建数据库代理中间层

若上述方案都无法实施,可搭建轻量中间服务(比如用.NET或Python编写):

  • 中间服务负责直接连接SQL Server 2008 R2
  • PHP通过HTTP请求调用中间服务的接口,间接完成数据库操作
    此方案适合特殊场景,但会增加架构复杂度,仅作为备选。

内容的提问来源于stack exchange,提问作者Bishu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:36:32