您的位置:首页 > 编程语言 > PHP开发

ThinkPHP 连接MSSQL PHP连接MSSQL

2011-03-11 17:10 435 查看
1.确定SQL装的时候用的是混合认证模式,或SQL验证模式

2.确定SQL2000装好后已打上SP4补丁

3.把“localhost”换成你的计算机名或是“127.0.0.1”

4.在PHP.ini文件里改mssql.secure_connection = On

5.查看本地MSSQL端口是不是1433,并且本机端口是否开放状态,如果端口变了相应服务地址后加“,端口号”,注意是逗号,不是冒号。

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(可以尝试一下)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: