ect.
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的问题终于解决了,虽然耗费大半天的时间,但收获还是很大的,现在把它贴出来,也让遇到同样问题的兄弟们少走一些弯路。
转换时出现php连接不上mssql问题解决方法
问题描述:转换时,出现“没有配置好 PHP 与 MSSQL Server 数据库的连接!”错误提示
问题分析:只有原数据库类型是 MSSQL 数据库的时候,才可能出现这个错误提示。一般是因为 PHP 没有正确加载 MSSQL 模块造成的。
解决办法:
一、如果您使用的空间是虚拟空间,请联系空间商。
二、如果您对服务器有管理权限,请看下面解决办法
1、如果您的服务器系统是 windows ,那么打开 php.ini,找到:
;extension=php_mssql.dll
把前面的分号去掉,然后重启 web 服务器。
如果没有找到以上代码,请添加以下代码到 php.ini 中,保存,并重启 web 服务器:
extension=php_mssql.dll
如果您的服务器是 linux 系统的,请重新编译 PHP ,使之成功加载 MSSQL 模块。
2、检查下 PHP 的安装根目录 ext 下是否有 php_mssql.dll ,如果没有,请下载相应 PHP 版本的 php_mssql.dll 并拷贝到该目录下
3、下载附件,解压后,把 ntwdblib.dll 拷贝到 c:/windows/system32/ 下,然后重启 web 服务器
上一篇:
PHP环境的配置解析_(L)MAP_php代码
下一篇:
群体性突发事件论文:“边界冲突”:农村群体性事件的县域分析