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

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

在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。