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!";
}
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值