如何使用php重复选择查询?

时间:2014-07-02 05:07:32

标签: php mysql

基本上我需要的是根据我正在阅读的文本文件的值进行查询。 这是我的代码。

   $con = mysqli_connect($host,$name,$pass,$db);

   $file = fopen($_FILES["file"]["tmp_name"], "r") or die("Unable to open file!");

   while(!feof($file))
   {  
        $codigo = fgets($file);
        $result = mysqli_query($con,"SELECT column FROM table WHERE column='". $codigo."'");
        $row = mysqli_fetch_array($result);
        echo $row;
   }
   fclose($file);
   mysqli_close($con);

但我无法得到我想要的。我的文本文件中有一些值,但是当我执行此操作时,我只能查询文本文件的最后一个值。

有什么建议吗?

如果我在while内添加这一行:

echo $codigo . "<br>";

我的文本文件的所有内容都打印出来,所以我认为问题出在结果变量中。当我进行除最后一个查询之外的查询时,文本文件的所有值都返回空值。

3 个答案:

答案 0 :(得分:1)

尝试

print_r($row);

echo $row["column"];

而不是

echo $row;

否则你将永远返回“Array”。

答案 1 :(得分:0)

解决方案是愚蠢的,当我逐行读取文件时,PHP也会读取新行(\ n),因此当我查询where条件永远不会成立时。 快速解决方案是创建子字符串。

答案 2 :(得分:0)

你做错了就是这一行:

$row = mysqli_fetch_array($result);

这就是为什么你只能看到最后的结果。您将使用新结果覆盖该值。而不是重写字符串,继续添加到数组,然后循环var_dump或print_r数组。

$row[] = mysqli_fetch_array($result);

它也可以帮助你以面向对象的方式使用mysqli,就像它的设计方式一样:

$result = $con->query($query);