apache连接mssql2005注意事项

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server

一最常见但是容易略的是未开启php.ini的扩展支持,解决方法:在php.ini里找到

①在php.ini中找到:
extension=php_mssql.dll,和extension=php_pdo_mssql.dll,确定他们的前面没有“;”。
②在php.ini中找到:
extension_dir = “C:\php\ext\”。这里是extension目录,确认这个目录下有php_mssql.dll、php_pdo_mssql.dll。
二 SQL server的1433端口未开启或被改动(本人也曾被该问题困扰了好久)。
查看端口是否启用的方法:(开始菜单-运行-输入cmd),输入 netstat -ano 回车
解决方法:(针对SQL Server 2008)1、开始——>Microsoft SQL Server 2008——>配置

工具——>Sql Server 配置管理器——>MSSQLSERVER的协议中查看TCP/IP协议是否启动,如果未

启动,右键单击选择启动。如果已启动,右键菜单点”属性” ,在IP地址页菜单中选”IP地址”,

把”IP1″和”IP2″中”TCP端口”为1433,”已启用”改为”是”。2、开始——>Microsoft SQL Server

2008——>配置工具——>Sql Server 配置管理器——>SQL Native Client 10.0 配置——>客

户端协议——>TCP/IP选择TCP/IP右键菜单中”属性”,确认”默认端口”是1433,”已启用”为”是”。
以上操作完成后,重启MSSQLSERVER服务。
(针对SQL Server 2000) 开始——>Microsoft SQL Server 2000——>服务器网络使

用工具——>“常规”选项卡——>查看TCP/IP协议是否禁用,若禁用,先选择然后点启用。选

择TCP/IP点属性,可以更改其端口号!

 

 

PHP连MSSQL的问题(NTWDBLIB.DLL在作怪)

而同事就可以连,他比较了ntwdblib.dll这个文件,版本都是2000.2.8.0。唯一不同的是他的机子装了MSSQL,怀疑是这个原因。

搜索了下,发现确实是这个原因。也有不少人碰到装了MSSQL就可以连远程MSSQL,没装则不行。

试验了下,发现原因还是在于NTWDBLIB.DLL这个文件。我本机是php5自带的,版本为2000.2.8.0,他也是。

在MSSQL光盘中搜索这个文件,找到NTWDBLIB.DLL,版本是2000.80.194.0。

将这个文件,Copy到php安装目录和c:\windows\system32目录下,停掉IIS或Apache。

一个Case需要使用PHP5连接MS SQL Server 2005,找了些资料自己琢磨了下,搞定了,呵呵

步骤:

1. 首先按通常做法配置好PHP5连接MS SQL Server
2. 下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: http://webzila.com/dll/1/ntwdblib.zip
3. 覆盖 apache2.2.6\bin\ntwdblib.dll
4. 覆盖 php5.2.5\ntwdblib.dll
5. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols
6. 允许命名管道 “named pipes” 和 “tcp/ip”
7. 右键点击 “tcp/ip”,打开属性 Properties 标签 “IP addresses”
8. 在 TCP 动态端口 “TCP Dynamic Ports” 填入 1433
9. 重启 SQL Server、Apache和PHP

使用以下方式连接MS SQL Server 2005:
mssql_connect(‘localhost,1433′, USERNAME, PASSWORD);

另请注意:
如果更改了默认的1433端口号,则IP地址后面加端口号,用,号隔开,不是:号,如
$linkId = mssql_connect(‘IP地址,端口号’,’用户名’,’密码’);
其实直接把php5自带的那个ntwdblib.dll考到system32(可以尝试一下)
三、PHP连接,mssql_connect();其中用PHP连接MSSQL的ntwdblib.dll文件可能版本低了,所以

你要用一个新的DLL文件替换。ntwdblib.dll文件的路径:你的php安装路径下。(较不常见)

 

本地测试是否连接成功代码

<?php
$msdb=mssql_connect(“localhost,1433″,”admin”,”admin”);
if ($msdb) {
echo “conncet ms sql server succed!”;
}
else {
echo “connect ms sql server error!”;
}
?>

Leave a Comment

 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |