PHP连接MS Access ODBC时出现SQL Server访问错误,寻求解决方案
解决PHP odbc_connect连接MS Access时出现SQL Server驱动错误的问题
核心问题定位
你的错误提示明确显示使用的是**[Microsoft][ODBC SQL Server Driver]**,但实际要连接的是MS Access数据库——驱动不匹配是导致这个报错的直接原因。
具体修复步骤
检查ODBC数据源配置
打开对应版本的ODBC数据源管理器:- 若使用32位XAMPP/PHP,运行
C:\Windows\SysWOW64\odbcad32.exe - 64位PHP则运行
C:\Windows\System32\odbcad32.exe
在「用户DSN」或「系统DSN」中,确认你的Access数据源使用的是Microsoft Access Driver (*.mdb, *.accdb),而非SQL Server相关驱动。如果没有正确的数据源,直接新建一个并指定Access数据库文件路径。
- 若使用32位XAMPP/PHP,运行
修正PHP连接代码
确保连接字符串对应Access驱动:- 用DSN连接:
$conn = odbc_connect("你的Access数据源名称", "", ""); // Access通常无需用户名密码,留空即可 - 无DSN直接连接(更灵活):
$dbPath = "C:\\xampp\\htdocs\\Admin\\your_database.accdb"; // 替换为数据库实际路径,注意双反斜杠转义 $conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$dbPath;", "", "");
- 用DSN连接:
权限排查
- 确保Apache(XAMPP的Web服务)运行用户拥有Access数据库文件所在文件夹的读写权限
- 若数据库在网络共享目录,同时要检查共享权限和NTFS文件权限是否开放
版本兼容性验证
32位PHP必须搭配32位Access ODBC驱动,64位PHP搭配64位驱动,二者不能混用。如果系统是64位但装了32位XAMPP,一定要用32位的ODBC管理器配置数据源。
内容的提问来源于stack exchange,提问作者Santosh Singh
相关产品推荐
相关产品推荐

