关于mssql2005连接的问题

dearcylin 2009-09-09 02:04:23
DB服务器是192.168.0.1 应用服务器是192.168.1.1
测试用应用服务器是192.168.0.2
dll用的是微软提供的【php_sqlsrv_ts.dll】
source如下

$connectionInfo = array( "Database"=>DB_DATABASE,"UID"=>DB_SERVER_USERNAME,"PWD"=>DB_SERVER_PASSWORD);
$conn = sqlsrv_connect( DB_SERVER, $connectionInfo);


在应用服务器连接DB服务器报错,$conn是False,
但是从测试用应用服务器连接DB服务器,一切正常。
用ping,DB服务器到应用服务器,应用服务器到DB服务器都可以ping通。
在应用服务器用telnet 192.168.0.1 1433也正常。
基本可以排除网络的问题。

各位高手帮看下为什么会出现这个情况
...全文
158 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
问题已经解决好,应用服务器和DB服务器分开始,应用服务器要安装Native Client。
文件名是sqlncli.msi。
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xuzuning 的回复:]
1、确认你的这些服务器在一个网段之中(按你给出的ip,很可能不在同一网段)
2、sql server 2005 默认是不暴露在网络中的,又要做网络应用需要做相关设置,你做了吗?

当满足上述条件后,使用 php_mssql.dll 扩展就已经可以了。
至于 php_sqlsrv_ts.dll 扩展,由于没有使用过,就不好说什么了

[/Quote]
谢谢楼上回答。
关于1 : 2个服务器的网段确实不在一个里。php里应用服务器和db服务器必须是一个网段里的吗?
关于2 : remote设置已经做过了。
xuzuning 2009-09-09
  • 打赏
  • 举报
回复
1、确认你的这些服务器在一个网段之中(按你给出的ip,很可能不在同一网段)
2、sql server 2005 默认是不暴露在网络中的,又要做网络应用需要做相关设置,你做了吗?

当满足上述条件后,使用 php_mssql.dll 扩展就已经可以了。
至于 php_sqlsrv_ts.dll 扩展,由于没有使用过,就不好说什么了
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
顶一下,有没有高手帮忙解决一下啊。在线等
yzhb85 2009-09-09
  • 打赏
  • 举报
回复
进来学习一下!
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cunningboy 的回复:]
那就还是sqlsrv_connect没有成功,所以$conn=false是一个boolean值,而不是sqlsrv_query所需要的resource
[/Quote]
恩,我想问的就是用【php_sqlsrv_ts.dll】来做数据连接时,
发生这样的问题是什么原因。

source肯定是正常的。
因为在测试应用服务器已经跑过了
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cunningboy 的回复:]
sqlsrv_query()函数参数不对,应该是一个数据库连接变量,比如你上面的$conn.
[/Quote]

我copy过来的log信息。
coding是这样的

$searchSql ="select * from user ";
$searchSql.="where user_cd = '$login_userCd' ";
$searchSql.="and password='$login_pwd' ";
$searchSql.="and delete_flg = 0 ";
$result = sqlsrv_query($conn, $searchSql);
CunningBoy 2009-09-09
  • 打赏
  • 举报
回复
那就还是sqlsrv_connect没有成功,所以$conn=false是一个boolean值,而不是sqlsrv_query所需要的resource
CunningBoy 2009-09-09
  • 打赏
  • 举报
回复
sqlsrv_query()函数参数不对,应该是一个数据库连接变量,比如你上面的$conn.
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
因为在测试用应用服务器成功连接过,并且所有功能也跑过,所以sql语句肯定是没有问题的。
在$conn = sqlsrv_connect( DB_SERVER, $connectionInfo);
这句coding下面用
echo"<pre>";
var_dump($conn);
打印出的值是False。
dearcylin 2009-09-09
  • 打赏
  • 举报
回复
回楼上的,在
$conn = sqlsrv_connect( DB_SERVER, $connectionInfo);
这句coding没有报错,而是在sql检索的时候报出的错误
错误信息:
[08-Sep-2009 17:19:15] PHP Warning: sqlsrv_query() expects parameter 1 to be resource, boolean given in C:\wamp\www\test\common\login.php on line 52
CunningBoy 2009-09-09
  • 打赏
  • 举报
回复
看一下log中,$conn具体是什么错误

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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