PHP连接sql server 2005环境配置及问题解决

网络编程 2025-03-30 23:26www.168986.cn编程入门

这是一篇关于如何在Windows环境下配置PHP连接SQL Server 2005的指南,适用于希望实现这一功能的朋友们。

一、在Windows系统中配置PHP以连接SQL Server 2005

确保你的Windows系统(无论是Win7还是XP)已经安装了PHP和相关的组件。在C盘下,PHP的相关文件位于特定的目录。为了连接SQL Server,我们需要进行一些配置。

1. 检查并(如果需要的话)替换phptwdblib.dll文件。这是一个关键的动态链接库文件,对于PHP连接SQL Server至关重要。请确保下载正确版本的ntwdblib.dll(版本号为2000.80.194.0)。

2. 配置PHP。打开phpi文件,进行以下操作:

去掉extension=php_mssql.dll前的注释符号。

将mssql.secure_connection设置为on。

将php_mssql.dll复制到phpi中指定的extension_dir目录或系统system32目录下。

完成这些配置后,需要重启Apache服务器。值得注意的是,如果你通过php压缩文件手动安装php到IIS下,那么你需要重启整个机器,而不仅仅是IIS。

3. 配置SQL Server。运行SQL Server配置管理器,打开协议Protocols,允许命名管道"named pipe"和"tcp/ip"。然后,右键点击"tcp/ip",打开属性,确保TCP动态端口1433被正确配置。重启SQL Server。

二、使用PHP连接SQL Server 2005

现在,你可以使用以下PHP代码来连接SQL Server 2005:

```php

// 连接数据库

$conn = mssql_connect('localhost', 'sa', '123456');

mssql_select_db('gu_dde', $conn);

// 执行查询语句

$Query = "select from dde_";

$AdminResult = mssql_query($Query);

// 输出结果

$Num = mssql_num_rows($AdminResult);

for ($i = 0; $i < $Num; $i++) {

// 输出每一行的数据

}

?>

```

将此代码保存为test.php文件,并通过浏览器访问。

三、常见问题的解决方案

如果在连接过程中遇到错误,例如报错"Fatal error: Call to undefined function mssql_connect()",那么你需要检查以下几点:

1. 确保在phpi中正确设置了MSSQL扩展和DCOM允许设置。去掉相关行前的分号";"。

2. 确认extension_dir的路径是否正确。例如,在本例中为"c:\php\ext"。

3. 如果仍然报错找不到某个dll文件,尝试将相关dll文件(如php_mssql.dll和ntwdblib.dll)复制到系统目录\system32下并重启测试。

确认服务器无误后,别忘了核查ntwdblib.dll文件是否已经准确放置在c:\windows\system32目录下。这一步操作至关重要,因为它确保了文件的可用性及其与SqlServer版本的兼容性。对于狼蚁网站的SEO优化来说,特定版本的ntwdblib.dll需要与SqlServer版本相匹配。比如,ntwdblib.dll版本为2000.2.8.0时,对应的是SqlServer2000(此信息是通过网络资料和猜测得知,尚未实际安装验证)。而版本为2000.80.194.0的ntwdblib.dll则适用于SqlServer2005(这是通过实验验证过的,且本人笔记本已安装此版本)。至于其他版本,如ntwdblib.dll版本为2000.80.2039时,可能对应SqlServer2008(此信息尚未验证)。

如果在同一台机器上运行php apache Sql Server2005,访问应该毫无障碍。但如果Sql Server2005和php服务器是分开的,就需要确保能通过ping命令访问到sqlserver所在机器。如果无法ping通,需要在php所在机器的\system32\drivers\etc下的hosts文件中添加一行,包括sqlserver所在机器的IP和机器名。如果仍然无法访问,可能需要检查php所在机器是否安装了mdac。如果没有,建议安装sqlserver客户端。

为了解决问题,需要下载两个文件:php_mssql.dll和ntwdblib.dll。特别需要注意的是php_mssql.dll文件必须复制到c:\windows\system32下。而ntwdblib.dll文件的版本选择尤为关键,以免后续出现问题。

至于在Linux环境下php连接sql server 2005,需要先安装LAMP环境中的除php外的其他组件。使用freetds连接MS SQL时,需要安装freetds并配置相关参数。重要提示:在调用mssql_connect函数时,第一个参数应该是freetds配置文件中的配置标识(如[1.1.1.21]),而非sql server的IP。完成这些配置后,编译安装php,并加入必要的配置项--with-mssql=/usr/local/freetds/。如果在编译过程中遇到找不到freetds目录的问题,可以按照官方FAQ的指导进行操作。完成所有准备工作后,重启apache服务器,就可以通过php访问sql server 2005了。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by