2011-02-13 159 views
0

我正在通過PHP查詢MySQL數據庫。 我從文件讀取輸入。然後遍歷輸入以查詢數據庫以檢索每個輸入的3個屬性。只有最後一個查詢返回來自MySQL的結果

數據庫連接正常。所有的查詢運行良好,否則。 發生了什麼是所有的查詢,但最後一個我得到mysql_num_rows($result) = 0。只有最後一個打印出正確的結果。

我想不通爲什麼。什麼可能是錯的?

$fh = fopen($my_File, 'r'); 
$arr = explode("\n", fread($fh, filesize($my_File))); 
fclose($fh); 
foreach ($arr as $line) {  
    if ($line != "\n" || $line != "" || $line != NULL) { 
    $query = "SELECT id, name, status FROM table1 WHERE id='$line'"; 
    $result = mysql_query($query); 
    if (!$result) { 
     die('Invalid query: ' . mysql_error()); 
    } 
    $num = mysql_num_rows($result); 
    if ($num == 0) { 
     echo "NULL Set<br/>";  
    } else { 
     echo "RESULT Set<br/>"; 
    } 
} 

回答

0

是否有可能文件中的行被「\ r \ n」而不是「\ n」終止?如果是這樣,你將在$ arr的每個元素(除了最後一個)的末尾添加一個額外的「\ r」。

嘗試增加

$line = trim($line); 

在你的foreach循環的開始,看看它是否有差別。

更好的是,使用fgets而不是fread。

+0

太棒了..謝謝了很多... – y2p 2011-02-13 07:07:55