2015-06-02 26 views
-1

我試圖讓到Microsoft SQL Server 2008 Express的數據庫的連接,我收到以下錯誤:無法進行連線到SQL Server 2008 Express數據庫

Connection could not be established. Array ([0] => Array ([0] => IMSSP [SQLSTATE] => IMSSP [1] => -1 [code] => -1 [2] => Invalid option YSHSDB was passed to sqlsrv_connect. [message] => Invalid option YSHSDB was passed to sqlsrv_connect.))

我下面這個http://php.net/manual/en/function.sqlsrv-connect.php

PHP代碼:

<?php 
    $serverName = "SERV002\SQLEXPRESS"; //serverName\instanceName 
    array("Database" => "YSHDB", "UID" => "sa", "PWD" => "myPassword"); 
    $conn = sqlsrv_connect($serverName, $connectionInfo); 

    if ($conn) { 
     echo "Connection established.<br />"; 
    } else { 
     echo "Connection could not be established.<br />"; 
     die(print_r(sqlsrv_errors(), true)); 
    } 
?> 

編輯
我得到f ixed線現在我得到這個:「連接不能建立。

Array ([0] => Array ([0] => 08001 [SQLSTATE] => 08001 [1] => -1 [code] => -1 [2] => [Microsoft][ODBC Driver 11 for SQL Server]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF]. [message] => [Microsoft][ODBC Driver 11 for SQL Server]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].) [1] => Array ([0] => HYT00 [SQLSTATE] => HYT00 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired [message] => [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired) [2] => Array ([0] => 08001 [SQLSTATE] => 08001 [1] => -1 [code] => -1 [2] => [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. [message] => [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.)

我已經檢查,以查看服務器是否允許遠程連接,它

+0

您提供的鏈接中的文檔說使用「UID」和「PWD」,但您放入「userName」和「password」,您似乎也有倒退的參數:「UID」=>「sa」 –

回答

2

你以錯誤的順序鍵/值對。

PHP的關聯數組語法是:

array(key => value) 

所以,你的代碼應該是:

array("Database" => "YSHDB", "UID" => "sa", "PWD" => "myPassword"); 

我也注意使用sa帳戶連接到SQL Server是一般不好的做法,而不是使用Windows身份驗證(在IIS中使用應用程序池標識或當前身份驗證方案的用戶)或至少一個具有授予的最小權限集的每個應用程序自定義SQL Server登錄用戶帳戶。

至於一篇社論:SQL Server 2008現在已經過時了7年(就像在2005年運行Windows NT 4一樣),請考慮升級,尤其是出於安全原因。

+0

done 。爲什麼我開始一個新的問題?因爲先前的問題得到了回答? –

+0

@FallenSoul,是的。當您發佈的問題得到正確答覆時,請接受有助於解決問題的正確答案。如果您的初始問題解決後,如果您遇到新問題,則創建新問題將允許其他具有類似問題的人員輕鬆搜索並找到確切的答案,以幫助他們解決問題。一篇文章中的多個問題很難獲得好的搜索結果,這有助於減少社區的其他部分。 –

0

在我的情況下,問題是例如名稱。如果使用默認實例名稱,則不需要設置實例name.Just設置服務器name.This是我的代碼:

<?php 
$serverName = "serverName"; 
$options = array( "UID" => "sa", "PWD" => "mypassword", "Database" => "DBname"); 
$conn = sqlsrv_connect($serverName, $options); 

if($conn) { 
    echo "Connection established.<br />"; 
}else{ 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
?> 

,你可以在這裏瞭解更多:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8b07a787-d2da-4336-b422-2e8199052d5e/sql-server-connection-timing-out?forum=sqldriverforphp

相關問題