只有最后一个查询返回MySQL的结果

时间:2011-02-13 06:52:37

标签: php mysql

我通过PHP查询MySQL数据库。 我从文件中读取输入。然后遍历输入以查询数据库以检索每个输入的3个属性。

数据库连接正常。否则所有查询都运行正常。 发生的事情是所有查询,但最后一个查询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/>";
    }
}

1 个答案:

答案 0 :(得分:0)

文件中的行是否可能被“\ r \ n”而不是“\ n”终止?如果是这样,你将在$ arr的每个元素的末尾添加一个额外的“\ r”(除了最后一个)。

尝试添加

$line = trim($line);

在你的foreach循环开始时,看看它是否有所作为。

更好的是,使用fgets代替fread。