PHP连接MSSQL报错:Call to undefined function sqlsrv_connect()求助
解决Call to undefined function sqlsrv_connect()错误
问题原因
你调用的sqlsrv_connect()属于非PDO的SQLSRV核心扩展,但目前仅启用了PDO版本的pdo_sqlsrv扩展,二者是独立的扩展组件,因此系统找不到该函数。
解决方案
方法1:安装非PDO的SQLSRV扩展
- 下载与环境匹配的扩展文件:
- 选择对应PHP 8.2.4、线程安全(TS)、x64架构的
php_sqlsrv_82_ts_x64.dll,版本建议与已安装的pdo_sqlsrv(5.11.0-beta1+16628)保持一致,避免版本冲突。
- 选择对应PHP 8.2.4、线程安全(TS)、x64架构的
- 将下载的dll文件放入XAMPP的PHP扩展目录(通常为
xampp\php\ext)。 - 打开
php.ini,添加以下配置行(与已有的pdo_sqlsrv配置放在一起):extension=php_sqlsrv_82_ts_x64.dll - 重启XAMPP的Apache服务,使扩展加载生效。
- 验证:运行
phpinfo(),检查是否出现独立的sqlsrv扩展条目(而非PDO Drivers下的sqlsrv)。
方法2:改用PDO方式连接数据库
如果不想额外安装扩展,可以直接使用已启用的PDO扩展连接,修改代码为:
$dsn = "sqlsrv:Server=$serverName;Database=你的数据库名称"; $username = "你的用户名"; $password = "你的密码"; try { $conn = new PDO($dsn, $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "连接成功"; } catch(PDOException $e) { die("连接失败: " . $e->getMessage()); }
内容的提问来源于stack exchange,提问作者FridayFeeling
相关产品推荐
相关产品推荐

