PHP连接MSSQL数据库的三种主流方法详解
本文介绍如何使用PHP连接Microsoft SQL Server数据库,主要涉及ODBC、传统mssql扩展以及专为SQL Server 2008及以上版本设计的sqlsrv驱动三种方法。内容涵盖数据源配置、连接建立、查询处理及资源关闭的全流程操作。
准备工作与驱动配置
在编写连接代码前,需确保PHP环境中已启用相应的数据库扩展。打开 php.ini 配置文件,根据目标数据库类型解除对应扩展前的注释符号(;):
- ODBC方式: 找到并取消注释
extension=php_pdo_odbc.dll(或extension=php_mssql.dll视具体版本而定)。 - mssql方式: 确认
extension=php_mssql.dll处于启用状态(适用于旧版SQL Server)。 - sqlsrv方式: PHP 5.3及以后版本不再内置此扩展,需从微软官网下载对应版本的
sqlsrv驱动程序并确保加载。
修改 php.ini 后,必须重启Web服务器(如Apache或Nginx)以使配置生效。
方法一:通过ODBC连接(通用性强)
ODBC(Open Database Connectivity)是一种标准接口,适用于多种数据库。在PHP中使用ODBC连接MSSQL,需在服务器端预先配置DNS数据源。
第1步:配置ODBC数据源
数据源配置需注意操作系统位数与数据库服务位数的匹配问题:
- 32位系统: 直接通过控制面板中的“管理工具” → “数据源 (ODBC)”进行设置。
- 64位系统: 若数据库为64位,直接使用默认的ODBC管理器;若需配置32位ODBC以兼容32位PHP应用,需运行专用程序:
C:\Windows\SysWOW64\odbcad32.exe。
注意: 无论系统位数如何,务必保证本地配置的ODBC数据源位数与PHP运行的环境位数一致,否则连接会失败。
第2步:建立连接与执行查询
使用 odbc_connect 函数进行连接,并通过 odbc_do 和 odbc_result 处理数据。代码如下:
// 建立连接
$con = odbc_connect('数据源名称', '用户名', '密码');
// 定义SQL查询语句
$query = "SELECT TOP 12 * FROM 数据库表名 ORDER BY id DESC";
// 执行查询
$result = odbc_do($con, $query);
// 遍历结果集
while (odbc_fetch_row($result)) {
$变量名称 = odbc_result($result, "字段名称");
// 处理数据...
}
// 关闭连接
odbc_close($con);
方法二:通过mssql扩展连接(适用于SQL Server 2000/2005)
该方式使用PHP原生的 mssql_* 系列函数,操作直观,但仅支持较老版本的SQL Server。
第1步:建立连接
使用 mssql_connect 指定服务器地址、用户名和密码:
$con = mssql_connect('数据库地址/IP', '用户名', '密码');
第2步:执行查询与读取数据
查询语句赋值给变量后,通过 mssql_query 执行,并使用 mssql_fetch_array 逐行获取数组格式的结果:
// 执行查询
$result = mssql_query($query, $con);
// 遍历结果
while ($row = mssql_fetch_array($result)) {
$变量名称 = $row["字段名称"];
// 处理数据...
}
// 关闭连接
mssql_close($con);
方法三:通过sqlsrv驱动连接(推荐用于SQL Server 2008及以上版本)
sqlsrv 是微软官方提供的轻量级驱动,性能优于ODBC,且原生支持新版SQL Server特性。由于现代PHP版本默认不包含,需手动安装。
第1步:配置连接信息数组
推荐使用关联数组传递连接参数,包括UID(用户ID)、PWD(密码)和Database(数据库名):
$connectionInfo = array(
"UID" => "用户名",
"PWD" => "密码",
"Database" => "数据库名称"
);
// 建立连接
$con = sqlsrv_connect("数据库地址", $connectionInfo);
if ($con === false) {
die(print_r(sqlsrv_errors(), true));
}
第2步:执行查询与处理结果
使用 sqlsrv_query 执行SQL,并通过 sqlsrv_fetch_array 获取数据:
// 执行查询
$result = sqlsrv_query($con, $query);
// 遍历结果
while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$变量名称 = $row["字段名称"];
// 处理数据...
}
// 关闭连接
sqlsrv_close($con);
总结与注意事项
- 位数匹配: ODBC方式最容易因系统/PHP/数据库位数不一致导致连接失败,配置时需严格核对。
- 版本选择: 如果使用的是SQL Server 2008或更高版本,强烈建议使用
sqlsrv驱动,它提供了更好的性能和错误处理机制。 - 资源释放: 所有方式最后都需调用对应的关闭函数(如
odbc_close,mssql_close,sqlsrv_close)以释放数据库连接资源。
以上就是PHP连接MSSQL数据库的详细内容,更多关于PHP数据库连接的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













