PHP 连接 SQL Server 2005 配置指南与代码示例
在使用传统 LAMP/WAMP 架构对接遗留系统时,经常需要将 PHP 环境连接至 SQL Server 2005。由于官方不再维护旧版驱动,需手动配置 php_mssql 扩展并替换关键 DLL 文件以解决版本兼容问题。
结果或目标
成功在 PHP 环境中建立与 SQL Server 2005 的连接,并能执行基本的查询操作(如 mssql_select_db、mssql_query)。
准备条件
已安装 PHP 环境(如 AppServ 或 WampServer,路径以
X:\AppServ\php5为例)。核心补丁文件:下载正确版本的 ntwdblib.dll (2000.80.194.0)。此版本是连接 SQL Server 2005 的关键,切勿使用其他版本的 DLL。
权限说明:操作涉及将文件复制到系统目录和 PHP 目录,可能需要管理员权限。
真实操作顺序
第1步:配置 php.ini 启用 MSSQL 扩展
目的:开启 PHP 对 SQL Server 的基础支持功能。
动作:
- 打开
php.ini配置文件。 - 找到
extension=php_mssql.dll,去掉前面的分号;注释符。 - 找到
mssql.secure_connection = Off,将其修改为mssql.secure_connection = On。这一步对于连接较新的 SQL Server 2005 至关重要。 - 保存文件。
第2步:替换与部署 DLL 文件
目的:提供兼容 SQL Server 2005 协议的底层库文件。
注意:必须先停止 Web 服务器(Apache/Nginx),再替换文件以避免占用锁定。
动作:
- 部署主扩展 DLL:进入你的 PHP 扩展目录(例如
X:\AppServ\php5\ext),将php_mssql.dll复制一份到系统目录C:\Windows\System32(如果是 64 位系统且运行 32 位 Apache,则可能需放入C:\Windows\SysWOW64,此处以常见的 32 位环境或通用描述为主)。 - 部署协议 DLL:将上一步下载的
ntwdblib.dll (2000.80.194.0)分别复制到以下两个位置:- 系统目录:
C:\Windows\System32 - PHP 根目录:
X:\AppServ\php5
- 系统目录:
完成上述文件的复制后,确保没有重复的冲突文件名覆盖导致的问题。
第3步:重启 Web 服务
动作:完全重启 Apache 服务(不仅仅是重新加载),使 PHP 重新读取 php.ini 并加载新的 DLL 依赖。
完成判断:创建一个新的 PHP 文件输入 ,在输出的页面中搜索 mssql,如果看到对应的配置信息区块,说明模块已成功加载。
代码示例
以下是一个简单的连接及数据读取示例。请注意,生产环境中请避免使用明文密码,并建议将 IP 地址参数化。
<?php
// 1. 建立连接
// 参数依次为:主机(包含端口), 用户名, 密码
$conn = mssql_connect('127.0.0.1,1468', 'sa', 'your_password');
if (!$conn) {
die('无法连接到数据库: ' . mssql_get_last_message());
}
// 2. 选择数据库
mssql_select_db('HR', $conn);
// 3. 执行查询
$Query = "SELECT * FROM Class";
$Result = mssql_query($Query);
// 4. 获取数据行数并循环输出
$Number = mssql_num_rows($Result);
for ($i = 0; $i < $Number; $i++) {
$Row = mssql_fetch_array($Result);
// 假设第二列是我们要显示的内容
echo ($Row[1]) . "<br/>";
}
// 5. 关闭连接
mssql_close($conn);
?>
简要总结
PHP 连接 SQL Server 2005 的核心在于“双 DLL”策略:一个是 PHP 的扩展接口 php_mssql.dll,另一个是网络协议的兼容库 ntwdblib.dll(必须指定 2000.80.194.0 版本)。配置完成后,即可像使用 MySQL 一样调用 mssql_* 系列函数。
以上就是 PHP 连接 SQL Server 2005 的详细配置步骤与代码示例,更多关于 PHP 数据库操作及兼容性技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









