如何使用php重复执行select查询?
基本上,我需要的是根据值进行查询我正在读的一个文本文件。 这是我的密码如何使用php重复执行select查询?,php,mysql,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
$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>";
echo$codigo。“
”;
文本文件的所有内容都已打印,因此我认为问题出在结果变量中。当我进行查询时,文本文件的所有值都返回空值,最后一个除外。请重试
print_r($row);
或
而不是
echo $row;
否则您将始终返回“Array”。解决方案有些愚蠢,当我逐行读取文件时,PHP也会读取换行符(\n),因此当我进行查询时,where条件从不为真。
一个快速的解决方法是创建一个子字符串。你做错的是这一行:
$row = mysqli_fetch_array($result);
这就是为什么你只能看到最后的结果。您不断使用新结果覆盖该值。不要重写字符串,而是继续添加到数组中,然后在循环变量转储或打印数组之后
$row[] = mysqli_fetch_array($result);
它还可以帮助您以面向对象的方式使用mysqli,就像它的设计方式一样:
$result = $con->query($query);
文本文件的内容是什么?
while($codigo=fgets($file)){var_dump($codigo);}
。。。这将告诉您从文件中读取的内容。可能您的文本文件重复了相同的数据。文件内容的代码如下:HJ5435 654JLL 54GFDH逐行所有内容都是字符串,这可能是错误吗?谢谢,但我得到的结果相同始终只有一个数据行匹配一个查询?
$result = $con->query($query);