2011-02-13 120 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