2012-06-27 21 views
0

我已經繼承了一個PHP網站,我們大多是Windows商店。我無法讓PHP代碼連接到MySQL。從IIS上的PHP的MySQL連接?

1 - IDE是Eclipse。我導入了該項目並設置了一個調試配置,並且在HTML和其他PHP(非數據庫)代碼中一切正常。

2 - 我正在運行IIS 7.5與PHP啓用

3 - 我試圖連接到兩個完全獨立的MySQL實例(不同的主機,不同DB等),也不會連接

我已經確保sql.safemode被關閉,並且在php.ini中沒有默認服務器(如果安全模式爲OFF,那麼不應該發揮作用吧?)

我沒有做任何特別的事情PHP代碼或項目,我想知道這是否是問題的一部分 - 我需要一個JAR或任何類型的引用來啓用MySQL連接?

的PHP代碼如下 - 沒有什麼特別的,我認爲:

$db_name = "foo"; 
$connection = @mysql_connect("myserver", "myuser", "mypw") or die("Could not connect to database"); 
mysql_select_db($db_name, $connection) or die("Count not select database"); 

上面的代碼總是導致的模具聲明「無法連接到數據庫」

+0

如果您從「mysql_connect'語句中刪除錯誤抑制,您會得到什麼錯誤? – Toote

+2

基本調試:刪除'@'以停止主動抑制錯誤,並將'mysql_error()'粘貼到這些'die()'調用中,以查看實際出錯的內容。 –

+0

再一次,請記住,我不是一個PHP的傢伙。所以mysql_error對我來說仍然是一個改進:)這導致:php_network_getaddresses:getaddrinfo失敗:沒有這樣的主機是已知的 –

回答

0

@符號是沒有必要的據我所知,用於建立數據庫連接。

嘗試

$連接的mysql_connect =( 「MYSERVER」, 「爲myuser」, 「mypw」)或死亡( 「無法連接到數據庫」);

+0

你說的沒必要(並且幾乎總是一個壞主意),但是「@」與無關在這種情況下使用的特定功能。錯誤抑制器可以應用於任何函數或上下文。 –

+1

@ -symbol用於隱藏錯誤,將它作爲上面的消息來移除,並告訴我們它隱藏的錯誤 –

+0

這導致:php_network_getaddresses:getaddrinfo失敗:沒有這樣的主機是已知的。請記住,我嘗試了多個MySQL服務器,所以它仍然必須是我的PHP配置 –