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

PHP 7连接MSSQL时出现Uncaught Error: Call to undefined function odbc_connection()错误的解决求助

解决PHP7连接MSSQL时odbc_connection()未定义的错误

这个错误很明确——你的PHP环境里ODBC扩展没启用或者根本没安装,我来一步步帮你解决:

一、需要的扩展说明

你用到的odbc_connection()属于PHP的ODBC扩展,不同系统下对应的扩展文件不一样:

  • Windows:php_odbc.dll
  • Linux:php_odbc.so

另外,微软官方提供了更适配MSSQL的sqlsrv扩展(包含sqlsrv和pdo_sqlsrv),性能和兼容性更好,我也会补充这个选项的配置方法。

二、Windows系统配置步骤

  1. 先检查你的PHP安装目录下的ext文件夹,看看有没有php_odbc.dll文件。如果没有,需要下载和你的PHP7版本完全匹配的扩展(注意区分32/64位、线程安全(TS)/非线程安全(NTS),必须和你的PHP环境一致)。
  2. 打开php.ini配置文件,找到类似;extension=odbc的行,去掉前面的分号注释:
    ; 旧版PHP7可能需要写完整文件名
    extension=php_odbc.dll
    ; PHP7.4及以上版本可以简化为
    extension=odbc
    
  3. 重启你的Web服务器(比如Apache、IIS)或者PHP-FPM服务。
  4. 创建一个测试文件,写入<?php phpinfo(); ?>,访问它搜索“ODBC”,确认扩展已经成功加载。

三、Linux系统配置步骤

  1. 通过包管理器安装ODBC相关依赖和PHP扩展:
    • Debian/Ubuntu系列:
      sudo apt-get update && sudo apt-get install unixodbc unixodbc-dev php-odbc
      
    • CentOS/RHEL系列:
      sudo yum install unixODBC unixODBC-devel php-odbc
      
  2. 重启PHP-FPM或者Web服务器(比如Apache):
    # 以PHP7.x版本的FPM为例
    sudo systemctl restart php7.x-fpm
    
  3. 同样用phpinfo()验证ODBC扩展是否加载成功。

四、推荐:使用微软官方sqlsrv扩展(更适配MSSQL)

如果后续连接MSSQL遇到兼容性问题,推荐切换到微软官方的sqlsrv扩展:

  1. 下载对应PHP7版本的sqlsrv和pdo_sqlsrv扩展文件(Windows是dll,Linux是so)。
  2. 把扩展文件放到PHP的ext目录。
  3. 在php.ini里添加两行:
    extension=sqlsrv
    extension=pdo_sqlsrv
    
  4. 重启服务后,就可以用sqlsrv_connect()来连接MSSQL了,这个函数是专门为SQL Server设计的,稳定性更好。

注意事项

  • 一定要确保扩展版本和你的PHP版本、系统位数、线程安全模式完全匹配,否则扩展会加载失败,还是会报错。
  • 如果修改php.ini后没生效,检查你是不是改了错误的php.ini文件(可以通过phpinfo()里的“Loaded Configuration File”查看当前生效的配置文件路径)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:32:29