mssql_connect()有什么特别的环境要求吗?

dingang 2004-07-12 03:13:32
以前我用这种写法一直都可以联接上的:

@$hostname="xxx.xxx.xxx.xxx,1533";(数据库的IP地址及端口)
@$dbuser="sa";
@$dbpassword="1234567";
@$id=mssql_connect($hostname,$dbuser,$dbpassword) or die ("无法联接到MSSQL服务器");
@$db=mssql_select_db("TABLE",$id) or die("无法联接MSSQL服务器");

但现在我重装了系统,并将mssql2000装到另外一台服务器上,然后mssql_connect()就总是联不上,不知是啥原因?!!
我看过了phpinfo()的信息,mssql已经加载成功了.
mssql
MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version 7.0
...全文
954 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingang 2004-07-19
  • 打赏
  • 举报
回复
注册dll组件应该用regsvr32,而不是svgr32

但是运行regsvr32 php_mssql.dll或者regsvr32 mssql.dll都会提示“Loadlibrary("php_mssql.dll")failed-找不到提定的模块。”
fengxxxxx 2004-07-16
  • 打赏
  • 举报
回复
你肯定没有正确加载拓展函数mssql.dll,我以前遇到过.

解决如下:

从"运行"输入CMD进入DOS,用cd..等达到EXTENTION的目录,然后输入
svgr32 mssql.dll ok!
dingang 2004-07-16
  • 打赏
  • 举报
回复
在A服务器上安装了SQL2000后一切都正常了,不知道为啥子,郁闷ing...
dingang 2004-07-13
  • 打赏
  • 举报
回复
A,B机托管在机房,没有防火墙的。
faucet 2004-07-12
  • 打赏
  • 举报
回复
但是我在公司用相同的代码却可以联接到托管在机房的B服务器。

连内网还是外网的ip呢?

你现在又是处于什么网络环境?


如果你在公司可以用内网ip联通,而在公司外不能用外网ip联通

考虑是否是放火墙
raid79 2004-07-12
  • 打赏
  • 举报
回复
继续关注事态的发展……
dingang 2004-07-12
  • 打赏
  • 举报
回复
我拷贝了一个SQL的查询分析器工具isqlw到A机,发现无法联通B上的数据库,而且也无法联通其他服务器上的数据库。

会不会是我的双网卡的原因?

我的A,B服务器各有两个网卡:分为内网卡和外网卡。外网卡是联接到公网上的IP地址,设置有IP、子网掩码、网关、DNS;内网卡只设置了一个IP(192.168.0.X)和子网掩码(255.255.255.0),然后接到交换机上。外网可以访问和被访问,内网也可以互相ping通,我现在用mssql_connect()试着联接B上的数据库,内网IP和外网IP都试过,始终联不上。但是我在公司用相同的代码却可以联接到托管在机房的B服务器。

但我觉得这种构架也应该没有问题的呀?
raid79 2004-07-12
  • 打赏
  • 举报
回复
把端口去掉试试看
52juanjuan 2004-07-12
  • 打赏
  • 举报
回复
你在A机子上先装个客户端工具看看能不能连上服务器.应该不是mssql的问题
dingang 2004-07-12
  • 打赏
  • 举报
回复
@$hostname="xxx.xxx.xxx.xxx,1533";(数据库的IP地址及端口)
@$dbuser="sa";
@$dbpassword="1234567";
@$id=mssql_connect($hostname,$dbuser,$dbpassword) or die ("无法联接到MSSQL服务器");
@$db=mssql_select_db("TABLE",$id) or die("无法联接MSSQL服务器");

以上这串代码只字未改,在A上就是“无法联接到MSSQL服务器”,在我本机就可以。
(A和B绝对是互通的,也能访问到1533端口,用户和权限也不会有问题,MSSQL函数也加载成功了。)
dingang 2004-07-12
  • 打赏
  • 举报
回复
绝对不是用户和权限的问题。
因为我在我自已的电脑上一样是可以联接B服务器上的数据库的。
pswdf 2004-07-12
  • 打赏
  • 举报
回复
需要相应的用户和权限,以及设置是否允许以何种方式访问
dingang 2004-07-12
  • 打赏
  • 举报
回复
肯定是可以访问这台机器的。

现在是A,B两台服务器,A是win2000+IIS+php4.37的web服务器,B是SQL2000服务器,现在在A上用上面的方法和代码始终无法联接到B的数据库上,但是我在自己电脑用相同的代码就可以联接的。我以前A,B是同一台服务器的时候也是没有问题的,现在分成2台后我只是改了一下@$hostname="xxx.xxx.xxx.xxx,1533";(数据库的IP地址及端口)里的IP地址(原来是127.0.0.1)就不行了,是不是在A上也要装一个SQL2000服务器的?
hlddn 2004-07-12
  • 打赏
  • 举报
回复
是否要在那台机器上的sql中建立一个用户,允许这台机器访问呢?
dingang 2004-07-12
  • 打赏
  • 举报
回复
本地没有安装sql2000呀,但是telnet xxx.xxx.xxx.xxx 1533是可以联通的。
unixdotnet 2004-07-12
  • 打赏
  • 举报
回复
你在本地用sql查询器能否连上那台机的sql-server吗?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧