基本上我需要的是根据我正在阅读的文本文件的值进行查询。 这是我的代码。
$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>";
我的文本文件的所有内容都打印出来,所以我认为问题出在结果变量中。当我进行除最后一个查询之外的查询时,文本文件的所有值都返回空值。
答案 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);