1、服务器本机测试可连接,本来新服务器上我是不需要用到mssql的

  • 栏目:编程 时间:2020-04-30 05:42
<返回列表

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 这个错误很多人都提到,现在我来写写我是解决个办法了.

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server,下面我们来介绍此问题的解决办法。

今天配置了新服务器,配置是IIS php,结果运行时发现php连接远程mssql数据库出错,出错代码如下:
Warning: mssql_connect(): Unable to connect to server:

首先说一下我的系统:winxp+mssql2000+php5.23

我有一台服务器win2003SP1+sqlserver2000PHP远程连接sql2000 连接失败是什么情况?1、服务器本机测试可连接!2、在自己的电脑上用查询分析器也可以连上!服务器上的1433端口在监听sql2000的用户名、密码没错,权限也没问题!ntwdblib.dll 版本是2000.80.194.0 apache、php、system32目录下的都已近更新 ntwdblib.dll和php_mssql.dll 都已经复制到system32目录下extension=php_mssql.dll 前面的分号已近去掉服务器环境是wamp,更改好之后有重启过的!试过很多方法都还是连接不上,网上的方法基本上都是过了!实在没有办法啦!求救啊!下面给出代码和失败提示!代码:

想想以前都是没问题的,怎么回事呢?后来去网上搜索,发现一篇文章,才发现原来服务器是需要安装mssql才能用php连接mssql的,本来新服务器上我是不需要用到mssql的,但是现在没办法了,只能把它装上了,安装了mssql之后就没问题了。

先查查你的php目录下有没有ntwdblib.dll有没有这个文件?ntwdblib.dll是客户连接库,如果有查看一下版本号是多少,一般会是7.0的,这个只能与mssql 7.0进行连接,我们为了能与我们现数据库版本相同就把mssql下的ntwdblib.dll拷贝到你php 所在的目录替换那个7.0的,重起apache就OK了.

代码如下复制代码 1、$conn=mssql_connect(121.10.108.112,'m123','m123') or die('数据库连接不上');2、$conn=mssql_connect(121.10.108.112:1433,'m123','m123') or die('数据库连接不上');3、$conn=mssql_connect(121.10.108.112,1433,'m123','m123') or die('数据库连接不上');

我在想,假如是在linux上面的apache php会怎样呢,不可能需要安装mssql吧,呵呵,晕了。

3种代码都试过失败提示:Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 121.10.108.112 in C:wamp on line 9数据库连接不上

下面是找到的一篇文章。

解决办法

php配置:
在php.ini文件里设置如下,找到
;extension=php_mssql.dll 把前面的分号去掉
找到extension_dir = d:extension
你的php.ini里面可能不是d:extension
改成在php安装目录下面的extensions目录下面的php_mssql.dll,所在的路径,假如你没有把它移动到其他地方(假设你的php安装路径是d:php)
就改成extension_dir=d:phpextensions
然后重新启动web服务器

统是: win2003+mssql2000+php5.23

这一点很轻易做到,但是做完这样的设置后还是连不上,错误的信息如下:

实现方法

MS SQL Server 数据库连接错误!请检查数据库主机变量设置是否正确!!!

php目录下有没有ntwdblib.dll有没有这个文件?ntwdblib.dll是客户连接库,如果有查看一下版本号是多少,一般会是7.0的,这个只能与mssq 7.0进行连接,我们为了能与我们现数据库教程版本相同就把mssql下的ntwdblib.dll拷贝到你php 所在的目录替换那个7.0的,重起iis就ok了

而主机的变量设置我是一遍一遍的检查,那些设置是一点问题都没有的,翻遍网页,找到了下面的这点蛛丝马迹:

php.com资料:

I am trying to connect to SQL Server 2000 from PHP
I bumped to following warning:
Warning: mssql_connect(): Unable to connect to server: SERVERPortal
....... on line 5

on line 5 there is:
$db_connect = mssql_connect('SERVERPortal', 'sa', 'my_passwd');

I did the following
1.enabled php_mssql.dll extension in PHP.ini
2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll

I search lots of profile throught web ,but no one give me proper answer to resolve it.

after a few hour ,I found the problem was caused by
ntwdblib.dll ,which version is 7.00.839 ,when I replaced old ntwdblib.dll with the new

ntwdblib.dll ,which version is 8.00.194 ,all problem are solved.

We had some, read A LOT, of problems with MSSQL under Windows 2003.
We had 2 the same windows, php, php-ini, everything machines but only one could connect.

Unable to connect was the error message.

Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00....

and the version of the one on the SQL Server install was 8.00.... so we copied this one in

the php and apache dir and it worked.

问题就这样被找到了,惹祸的是它 ntwdblib.dll

ntwdblib.dll的主要作用是提供sql server连接服务。

我用的php版本是4.3.9,在安装它的服器的 windows/system32/ 下我查到ntwdblib.dll文件的版本是2000.2.8.0 ,这个版本支持的是sql server 7.0, 因为安装PHP时会把dlls下面的所有文件覆盖到系统

目录下,所以当我用它去连接 sql server 2000 的时候当然会是无法连接了。

后来我在一台正常安装sql server 2000 的服务器上查到 ntwdblib.dll的版本是 2000.80.2039.0,我把这个文件拷过去,覆盖掉以前的版本,重启服务器后,一切正常。

补充:假如数据库名的开头是数字时也会提示无法打开,这时要做的很简单,把数据库的名字用中括号 [ ]
括起来就搞定了,如 123bbs 改写成 [123bbs]就没有问题了,另外假如你的数据库名字与sql server中的保留字冲突的话也会出现这种情况,用中括号的方法一样可以解决。
最终,PHP无法正确连接sql server 2000的问题终于解决了,虽然耗费大半天的时间,但收获还是很大的,现在把它贴出来,也让碰到同样问题的兄弟们少走一些弯路。

上一篇:具体实现方法如下,//自定义文件上传时间 下一篇:删除一个文件

更多阅读

具体实现方法如下,//自定义文件上传时

编程 2020-04-30
php文件处理类 本文实例讲述了php可生成缩略图的文件上传类及其用法。分享给大家供大家参考...
查看全文

删除一个文件

编程 2020-04-30
From: 知识点简介: 1.判断文件或目录是否存在bool 复制代码 代码如下: file_exists(string filename) ...
查看全文

1、服务器本机测试可连接,本来新服务器

编程 2020-04-30
Warning: mssql_connect() [function.mssql-connect]: Unable to connectto server: 这个错误很多人都提到,现在我来写...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有