2011-03-03 45 views
0

我寫了如下代碼:爲什麼我不能用PHP連接到Sql Server?

<?php 
    $conn = mssql_connect("xx.xx.xx.xx", "username", "password") 
      or die("Can't connect to server ".mssql_error()); 
    echo "Success"; 
    mssql_close($conn); 
?> 

的錯誤是:

PHP Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: xx.xx.xx.xx in xxxxxxx\conn.php on line 2 PHP Fatal error: Call to undefined function mssql_error() in xxxxxxx\conn.php on line 3

服務器是APACHE2.2時,SQL Server的版本是2005年,PHP的版本是5.2.5,我刪除extension=php_mssql.dll;並在ext目錄

+0

重新啓動Apache .. – 2011-03-03 07:59:32

+1

沒有'mssql_error'功能。有一個['mssql_get_last_message'](http://php.net/mssql_get_last_message),但更好的辦法是切換到[SqlSrv](http://msdn.microsoft.com/zh-cn/sqlserver/ff657782.aspx) 。至於連接失敗的原因,它可能被防火牆阻止,或者TCP/IP可能沒有爲SQL Server啓用,或者您正在使用的帳戶可能不允許遠程訪問。沒有足夠的信息來說。 – outis 2011-03-03 09:09:35

+0

看起來像[PDO](http://php.net/PDO)的支持已添加到[SqlSrv 2.0](http://msdn.microsoft.com/library/ff628175.aspx)。我會隨時通過舊的mssql或程序SqlSrv擴展。 – outis 2011-03-03 09:41:58

回答

0

請問您檢查您的Apache日誌,如果有與MSSQL擴展服務啓動時,一個問題有一個php_mssql.dll

+0

它說擴展名不能找到 – wong2 2011-03-03 08:14:56

+0

然後用phpinfo()檢查擴展路徑 - 可能它不正確 – 2011-03-03 08:24:16

0

使用mssql_get_last_message()

<?php 
    $conn = mssql_connect("xx.xx.xx.xx", "username", "password") 
      or die("Can't connect to server ".mssql_get_last_message()); 
    echo "Success"; 
    mssql_close($conn); 
?> 
相關問題