欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php5.3 连接sql server2008失败,请大家帮忙,崩溃了要

程序员文章站 2024-02-07 22:44:52
...
php版本是 5.3.22 非线程安全
数据库sql server 2008 R2,不在同个服务器上,局域网
IIS6.0 win2003

根据百度安装了
Microsoft SQL Server 2008 R2 Native Client (sqlnlci.msi)
SQL Server Driver for PHP 2.0 中的php_pdo_sqlsrv_53_nts_vc6.dll
与php_sqlsrv_53_nts_vc6.dll

好不容易php.info里扩展项给加上了,可是连接数据库的时候又报错了,我是新手,弄了好几天了,实在没办法了,求大家帮帮我

这是phpinfo里加载了

连接代码如下

$uid="sa";
$pwd="1234";
$db_name="test";
$serverName="155.46.2.23";


$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db_name);
$conn = sqlsrv_connect($serverName,$connectionInfo);

if($conn==false)
{
echo"Could not connect.";
die( print_r( sqlsrv_errors(), true));
}else{
echo"sqlserver connect.";
}


报错


数据库方面 远程也充许了 TCP/IP 管道 都启用了 1433

救我吧大神们


回复讨论(解决方案)

因为不在同个服务器上
sql server 要打开远程访问服务并授权

sql server 远程访问是允许的,授权是指给登录的账户授权吗?

sql server 远程访问是允许的,授权是指给登录的账户授权吗?

你按管理器的提示操作

我检查过,数据库远程连接是充许的,跟这个
http://wenku.baidu.com/link?url=W9y3IxRCMEfw_q_EJHESqVp2t8AmgBmjbu1_RlHrfbh9SgLw8m-eHqFwCz8Rk3hZQnLUbpUsxuQU7tnHZOgXOIY4gk9MukiHOzc1OCNIrR_
配置是一样的
实例名 连接的时候不是用的IP地址 数所库名 用户名跟密码吗? 怎么指定实例名呢?

我有些怀疑是不是sqlnlci的版本问题 或是我哪个部分配置错误,请帮我再看看


sqlsrv_connect( string $serverName [, array $connectionInfo])
参数

$serverName:一个字符串,它指定了要连接的服务器的名称。此字符串中可包含实例名称(例如,“myServer\instanceName”)或端口名称(例如,“myServer, 1521”)。有关此参数的可用选项的完整说明,请参阅 Using Connection String Keywords with SQL Native Client(将连接字符串关键字用于 SQL Native Client)中的“Server keyword in the ODBC Driver Connection String Keywords(ODBC 驱动程序连接字符串关键字中的服务器关键字)”部分。
$connectionInfo [可选]:一个关联 array,其中包含连接属性(例如,array("Database" => "AdventureWorks"))。下表描述了该数组所支持的键:

连接代码如下

$uid="sa";
$pwd="1234";
$db_name="test";
$serverName="155.46.2.23";


$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db_name);
$conn = sqlsrv_connect($serverName,$connectionInfo);

另外 我还试过 $serverName="155.46.2.23\实例名";
$serverName="155.46.2.23,1433";
$serverName="155.46.2.23\SqlExpress,1433";

加了端口号的变成TCP提供程序报错

加端口号试试
以前我用的时候都是用机器名的(用ip就连不上)

加端口号后报错变成了这样

怎么看都觉得是sql server 网络配置有问题,可是网上说的远程连接的都配了啊









这个东西有没有影响的?

你先试试用客户端能不能连到数据库上,先确认参数与网络配置没问题。

楼主你可以看看是否本地服务器安全策略没有开放端口出站入站规则,还有对方服务器是否开放端口

谢谢大家的回复,问题解决了,局域网的网络管理员把对我数据库所在服务器的访问限制了,他开放后我就能连上了,到处都是坑啊。。。。。。