这是我的问题,我有这样的连接句柄:
$dbSrvName = 'servername';
$dbName = 'database';
$dbUser = 'user';
$dbPass = 'password';
$dbInfo = array(
'Database' => $dbName,
'UID' => $dbUser,
'PWD' => $dbPass
);
$this->dbConn = sqlsrv_connect($dbSrvName, $dbInfo);
if(!$this->dbConn)
{
die(print_r( sqlsrv_errors(), true), 1);
}
当我从sqlsrv_errors()触发输出时,我收到以下消息:
数组([0] =>数组([0] => 08001 [SQLSTATE] => 08001 [1] => 26 [code] => 26 [2] => [Microsoft] [SQL Server Native Client 10.0]客户端 无法建立连接,因为在此期间遇到错误 在登录前握手。常见原因包括客户试图 连接到不受支持的SQL Server版本,服务器太忙了 接受新连接或资源限制(内存或最大值 允许连接)在服务器上。 [message] => [微软] [SQL Server Native Client 10.0]客户端无法建立连接 因为在登录前握手期间遇到错误。 常见原因包括客户端尝试连接到不受支持的 SQL Server的版本,服务器太忙,无法接受新的连接或者 资源限制(内存或允许的最大连接数) 服务器。 )[1] =>数组([0] => 08001 [SQLSTATE] => 08001 [1] => 10054 [code] => 10054 [2] => [Microsoft] [SQL Server Native Client 10.0] TCP 提供者:远程强制关闭现有连接 主办。 [message] => [Microsoft] [SQL Server Native Client 10.0] TCP 提供者:远程强制关闭现有连接 主办。 )[2] =>数组([0] => 08001 [SQLSTATE] => 08001 [1] => 26 [code] => 26 [2] => [Microsoft] [SQL Server Native Client 10.0]客户端 无法建立连接[message] => [微软] [SQL Server Native Client 10.0]客户端无法建立连接)[3] => 数组([0] => 08001 [SQLSTATE] => 08001 [1] => 10054 [代码] => 10054 [2] => [Microsoft] [SQL Server Native Client 10.0]客户端无法 由于prelogin失败而建立连接[message] => [Microsoft] [SQL Server Native Client 10.0]客户端无法建立 由于prelogin失败导致连接))[2014-12-31 08:35:25]
使用的SQLSRV: php_sqlsrv_53_ts_vc9.dll
所以我担心SQL的版本与此版本的sqlsrv不兼容。有什么想法吗?
提前谢谢你,新年快乐!
答案 0 :(得分:0)
我猜你正在尝试远程连接到sql server。您需要确保您的SQL Server配置实际上是可行的。
然后,您需要确保您尝试连接的用户帐户具有适当的权限
然后需要在服务器上打开防火墙...
这是一个要检查的简短列表。
答案 1 :(得分:0)
实际上,这是一个误解!我尝试连接的数据库是Oracle。所以PHP库不兼容。
非常感谢...