PHP连接SQL Server数据库验证方法与注意事项

橘子海
橘子海
发布时间:2026-10-14 | 2人浏览过
原创

在PHP项目中集成SQL Server数据库时,通常依赖微软提供的 sqlsrv 驱动。正确建立连接不仅需要配置正确的服务器地址,还需确保数据库服务端的身份验证模式匹配。本文将通过代码实例演示如何进行连接验证,涵盖参数配置、异常捕获及基础查询测试。

连接前准备条件

在使用 sqlsrv 函数库进行连接操作之前,需满足以下环境与服务端配置要求:

  • 服务端配置:SQL Server 必须启用“混合模式身份验证”(Mixed Mode),允许同时使用 Windows 身份验证和 SQL Server 身份验证。
  • 用户凭证映射:用于连接的 UID(用户名)和 PWD(密码)必须是数据库中存在的有效账号,且该账号拥有相应的权限。
  • 特殊字符转义:若密码中包含右大括号 },必须在驱动连接字符串中进行转义,即使用两个右大括号 }} 表示一个单字符,例如密码 pass}word 应设置为 pass}}word。

连接验证操作步骤

第1步:构建连接参数数组

目的:定义服务器地址、目标数据库及认证凭据。
动作:初始化 PHP 关联数组,指定 UID 和 PWD 属性。
重要参数:serverName(通常为 localhost 或 IP)、Database(目标库名)。

第2步:执行连接尝试与错误捕获

入口:调用 sqlsrv_connect() 函数。
动作:将服务器名与配置数组传入。若返回 false,说明连接失败。
完成状态判断:成功时返回连接对象;失败时需通过 sqlsrv_errors() 获取详细报错信息以便调试。

第3步:执行轻量级查询验证连通性

目的:确认连接不仅已建立,且具备基本的读写/查询权限。
动作:发送一条简单的 SELECT 语句,如 SELECT CONVERT(varchar(32), SUSER_SNAME()) 以获取当前登录用户信息。
注意:执行完毕后需调用 sqlsrv_free_stmt() 释放语句资源,并使用 sqlsrv_close() 关闭连接。

<?php
$serverName = "(local)";
$uid = 'your_username'; //请替换为实际用户名
$pwd = 'your_password'; //请替换为实际密码

$connectionInfo = array(
    "UID" => $uid,
    "PWD" => $pwd,
    "Database" => "AdventureWorks"
);

$conn = sqlsrv_connect($serverName, $connectionInfo);

if ($conn === false) {
    echo "无法连接数据库.";
    die(print_r(sqlsrv_errors(), true));
}

$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query($conn, $tsql);

if ($stmt === false) {
    echo "查询错误.";
    die(print_r(sqlsrv_errors(), true));
}

$row = sqlsrv_fetch_array($stmt);
echo "登录的用户: " . $row[0];

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>

常见问题排错建议

如果上述步骤中 sqlsrv_connect 返回错误,请优先检查以下几点:

  • 确认 SQL Server 服务是否正在运行,且网络端口(默认1433)未被防火墙拦截。
  • 核对 UID 和 PWD 的大小写及特殊字符拼写,特别注意密码中转义符是否正确。
  • 检查 PHP 环境是否已加载 php_sqlsrv_*.dll 扩展文件,可通过 phpinfo() 查看。

以上就是PHP使用sql server验证连接数据库方法的详细内容,更多关于PHP连接SQL Server的相关资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表