今天接到一个问题要php5+iis6+mysql5的平台环境上访问sqlserver2000的数据,结果运行时发现php连接远程mssql数据库出错,出错代码如下:
Warning: mssql_connect(): Unable to connect to server:

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

扩展方法:

1、在c:/windows/php.ini文件中找到 

;extension=php_mssql.dll 把前面的分号去掉

找到

;extension_dir   =   "./" 把扩展库目录改为php的库目录如:extension_dir   = "c:/php/ext"

2、把php_mssql.dll文件复制到c:/windows/system32/目录下

3、重启iis。

下面是找到的一篇文章。

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:/php/extensions/  
然后重新启动web服务器

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

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

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

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: SERVER/Portal
....... on line 5

on line 5 there is:
$db_connect = mssql_connect('SERVER/Portal', '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版本是5.25,在安装它的服器的 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的问题终于解决了,虽然耗费大半天的时间,但收获还是很大的,现在把它贴出来,也让遇到同样问题的兄弟们少走一些弯路。
最后,如果您的目标MSSQL电脑装有防火墙,请开放1433端口,windows xp系统更是如此!

看了以上资料让装sqlserver2000的朋友传“ntwdblib.dll ”文件我,自己本地测试果然成功,但把上传到服务器上,结果info()没有mssql扩展了,本来已经加载的怎么就没有了,把php.ini文件和本地对比基本没有差别,就是扩展不了,本地一切正常。

最后发现还是“ntwdblib.dll ”的版本问题,找到个更高的“ntwdblib.dll ”版本替换。

关于PHP无法连接MSSQL数据库的解决办法相关推荐

  1. php5.3无法加载mysql数据库模块_PHP_php5.3不能连接mssql数据库的解决方法,本文实例讲述了php5.3不能连接m - phpStudy...

    php5.3不能连接mssql数据库的解决方法 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_conn ...

  2. 数据库设置为php5.3,php5.3不能连接mssql数据库的解决方法,php5.3mssql_PHP教程

    php5.3不能连接mssql数据库的解决方法,php5.3mssql 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不 ...

  3. php5.3不能连接mssql数据库的解决方法

    这篇文章主要介绍了php5.3不能连接mssql数据库的解决方法,针对php5.3之后不支持mssql_connect函数提供了对应的解决方法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲 ...

  4. Linux下数据库连接超时时长,关于.Net Core 部署在Linux下连接SqlServer数据库超时解决办法...

    .Net Core 在 Linux 下连接 SqlServer 需要 SqlServer2008 SP3或以上版本,或SqlServer2012,或SqlServer2014. 如果SqlServer ...

  5. 在Windows 2003 64位下ASP无法连接Access数据库的解决办法

    前几天安装好了 Windows 2003 64bit系统,在上面跑了一个asp的网站,在连接access数据库时出错误,google过后果然发现了一个办法,就是让IIS以32位的方式运行,只要在命令行 ...

  6. oracle10数据库链接失败,Oracle10g出现Enterprise Manager 无法连接到数据库实例解决办法...

    刚装好 10g 时,把的监听端口是1521.后来把端口改成了1568了,登上em发现Enterprise Manager 无法连接到数据库实例 ,连接字符串的端口仍是1521,如何解决这个问题. 登陆 ...

  7. Docker 运行的 应用程序无法连接Oracle数据库的解决办法

    1. 最近公司使用docker化部署运行 app  发现一个部门的 多数据源取数的功能连接不上 oracle数据库 报错提示为: 2. 公司平台部同事给出两个解决方案: https://blog.cs ...

  8. Python实现连接mssql数据库操作

    Python 想要和MSSql数据库进行交互,首先要下载名为"pymssql"的包,然后import该包 Python实现连接mssql数据库,并做简单的操作:查询和非查询操作,代 ...

  9. 【转发】PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库

    转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全 ...

最新文章

  1. oracle如何进入管理器,oracle 启动管理器
  2. 访问网络计算机的盘符,win7系统下如何禁止访问指定盘符保护电脑安全
  3. Blazor 火了,不禁让人想起已死的Silverlight !
  4. sklearn 线性回归_使用sklearn库做线性回归拟合
  5. linux切换sid,linux – 将sid字段添加到ps -f输出
  6. 3D中obj文件操作
  7. net user test 123456 /add
  8. dockerfile中的env指令_Dockerfile中的ENV指令的具体使用详解
  9. 鸿蒙系统可以上外网吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  10. ppt模板怎样用到html中,PPT模板怎么设置(ppt模板怎么竖版)
  11. 什么笔记本学计算机二级,计算机二级Office
  12. Axure 进阶 | 制作携程网酒店“入住日期”与“退房日期”控件
  13. 初探Python声音处理(Demo)
  14. CSMA/CA与CSMA/CD的区别
  15. 百练4124:海贼王之伟大航路
  16. js 动态生成 input 的绑定事件 blur 无效
  17. Substance的置换效果
  18. Ubuntu16.04、18.04换清华源
  19. Firefox使用Chrome主题
  20. iframe展示html源代码,HTML DOM IFrame用法及代码示例

热门文章

  1. 【软考 系统架构设计师】英语高频词汇
  2. 4.9 论文笔记 |【USENIX 2020】That Was Then, This Is Now
  3. C语言课设车票管理系统(大作业)
  4. Android 最完整的五指棋代码示例
  5. 华为机试题2014 java_2014届华为校园招聘机试题(java实现)
  6. jQuery关闭浏览器右键功能
  7. 抓住SOLIDWORKS连接到云端的时机!
  8. 信道建模那些事--仿真Matlab
  9. Java Web层框架比较
  10. globalData、分包、云开发(云数据库、云存储、云函数)