2014-02-19 64 views
1

正如寫在標題我有這個問題。 我有數據讓我連接到存儲在文件中的數據庫。得到這些相關信息後,我試圖建立與數據庫通信,但我收到警告mysql_connect:php_network_getaddresses:getaddrinfo失敗:沒有這樣的主機是已知的使用文件值

警告:mysql_connect()函數:php_network_getaddresses:的getaddrinfo失敗:沒有這樣的主機是已知的。在C:\ WAMP \ WWW \ jstool \ connect.php上線21

兩次和連接的結果是什麼,即使值是正確的(也就是,如果我嘗試連接寫下值它的工作原理)。 這裏的txt文件:

localhost 
root 
pwd 

下面的代碼:

ini_set("auto_detect_line_endings", true); 

$handle = fopen("config.txt", "r"); 
if ($handle) { 
    $i=0; 
    while (($line = fgets($handle)) !== false) { 
     $ln[$i]= $line; 
     $i++; 
    } 
} 

define("SERVER", $ln[0]); 
define("USER", $ln[1]); 
define("PASSWORD", $ln[2]); 
$db = mysql_connect(SERVER,USER,PASSWORD); 

if (!$db) { 
    [...] 
} 
else { 
    [.. reach database ..] 
} 

如果我只是寫

$db = mysql_connect("localhost", "root", "pwd"); 

正如你可以看到包含在TXT文件中的值,它工作正常。

+0

在連接到數據庫 –

+0

之前,請回顯SERVER的值。我嘗試過'echo SERVER。「」.USER。「」.PWD。「!」;'而且結果很好:'localhost root pwd!' – Jannuzzo

回答

4

嘗試使用trim()

define("SERVER", trim($ln[0])); 
define("USER", trim($ln[1])); 
define("PASSWORD", trim($ln[2])); 

fgets()手冊

讀取結束時的長度 - 1個字節已被讀出,或換行(其 包括在返回值)

所以你的閱讀包​​括換行符。

+0

很棒。有效。我可以問你爲什麼這樣嗎? – Jannuzzo

+0

看到編輯回答 –

+0

好吧。由於回聲並未打印出新行,所以我確信這不是問題所在。我錯了!非常感謝伊恩! – Jannuzzo

相關問題