Windows11下PHP8配置SQL Server ODBC:odbc_connect未定义报错求助
解决PHP调用
odbc_connect()报未定义函数的问题 问题描述
Fatal error: Uncaught Error: Call to undefined function odbc_connect() in C:\xampp\htdocs\simrs\tes.php:8 Stack trace: #0 {main} thrown in C:\xampp\htdocs\simrs\tes.php on line 8
使用以下PHP代码连接SQL Server时触发上述错误:
$server="myservername"; $username="myusername"; $password="mypassword"; $db="mydb"; $connection_string = "DRIVER={ODBC DRIVER 17 for SQL Server};SERVER=$server;PORT:myPort;DATABASE=$db"; $odbcConn = odbc_connect($connection_string,$username,$password);
已安装ODBC驱动(截图如下),但问题依旧:
问题根源
这个报错和系统ODBC驱动无关——你已经装了驱动,但PHP的ODBC扩展模块未启用,导致PHP识别不了odbc_connect()函数。
解决步骤
1. 启用PHP ODBC扩展
- 打开XAMPP控制面板,点击Apache区域的
Config,选择PHP (php.ini)打开配置文件。 - 在文件里搜索
extension=odbc,找到被注释的两行:;extension=odbc ;extension=pdo_odbc - 删掉每行开头的分号
;,启用这两个扩展:extension=odbc extension=pdo_odbc - 保存文件后,重启XAMPP的Apache服务。
2. 验证扩展是否生效
新建一个phpinfo.php文件,内容:
<?php phpinfo(); ?>
访问这个文件,搜索ODBC,如果能看到ODBC相关的配置区块,说明扩展已成功启用。
3. 修正连接字符串格式
你的连接字符串里PORT:myPort的冒号要改成等号=,否则可能导致连接失败:
$connection_string = "DRIVER={ODBC DRIVER 17 for SQL Server};SERVER=$server;PORT=myPort;DATABASE=$db";
内容的提问来源于stack exchange,提问作者abi mujianto
相关产品推荐
相关产品推荐

