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

Microsoft SQL Server PDO连接报错SQLSTATE[HY000][2002]求助排查

问题原因分析及解决方向
  • 核心错误:使用了错误的PDO驱动
    你的代码里用的是mysql:host=$servername的连接字符串,这是用于MySQL数据库的PDO驱动,但你要连接的是Microsoft SQL Server,两者完全不兼容。SQL Server对应的PDO驱动是sqlsrv或dblib(取决于环境),连接字符串格式完全不同。

  • 其他可能的原因

    • 未安装PHP的SQL Server扩展:XAMPP默认不包含SQL Server的PDO扩展,需要手动安装对应PHP版本和系统架构的pdo_sqlsrv与sqlsrv扩展。
    • SQL Server端口配置错误:SQL Server默认端口为1433,若你的实例使用非默认端口,需在连接字符串中明确指定(例如;port=1433)。
    • TCP/IP协议未启用:在SQL Server配置管理器中,检查SQL Server网络配置下的目标实例是否启用了TCP/IP协议,且监听端口正确。
    • 防火墙拦截:本地或服务器端的防火墙可能阻止了XAMPP所在服务器访问SQL Server的1433端口。
修正后的连接示例(使用sqlsrv驱动)
<?php
$servername = "你的服务器名";
$username = "你的用户名";
$password = "你的密码";
$dbname = "你的数据库名";

try {
  // SQL Server的PDO连接字符串格式
  $conn = new PDO("sqlsrv:Server=$servername;Database=$dbname;charset=utf8", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:20:36