0
我有一個遠程服務器上運行IIS7和SQL Server 2008這我想通過ODBC連接到一個PHP腳本:如何在PHP中通過ODBC連接到Server 2008?
$server = "server_ip";
$database = 'db';
$user = 'user';
$password = 'pass';
$conn=odbc_connect("Driver={SQL Server};Server=$server;Database=$database;", $user, $password);
if($conn) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die(print_r(odbc_error(), true));
}
但是當它運行時,我得到:
Warning: odbc_connect(): SQL error: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied., SQL state 08001 in SQLConnect in X:\server\htdocs\alert-interim\test.php on line 10
Connection could not be established.
08001
另外:
- 我已經TCP下SQL Server配置管理器中啓用/ IP, 「SQL Server網絡配置」 - > 「爲MSSQL服務器協議」
- 我的本地環境是Windows 7上運行XAMPP與PHP 27年5月4日
- 端口1433已經在我的本地防火牆被打開
我一直在SQLSRV連接玩弄太多,但我似乎越來越近與ODBC。服務器上是否還有其他需要爲ODBC連接設置的連接方法,或者連接方法是否有問題?
編輯:按照大安的評論,我嘗試了切換連接方法PDO(但使用SQLSRV而是因爲我在Windows上):
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08001]: [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [53]. ' in X:\server\htdocs\alert-interim\test.php:9 Stack trace: #0 X:\server\htdocs\alert-interim\test.php(9): PDO->__construct('sqlsrv:Server=7...', 'user', 'pass') #1 {main} thrown in X:\server\htdocs\alert-interim\test.php on line 9
我也打開命名Sql Server配置管理器中的管道並重新啓動服務,但無濟於事。
嘗試PDO'新PDO(「DBLIB:主機= yourhost; DBNAME =「。$ db,$ user,$ pass);' – Daan 2015-02-09 11:01:06
謝謝@Daan,我根據您的反饋更新了這個問題。 – praniclift 2015-02-09 11:19:30