我试图从db行中搜索数组中的给定值-
$path = '1.jpg';
$result = mysqli_query("SELECT * FROM table WHERE myname='$myuser'");
$mypath = array();
while($row = mysqli_fetch_assoc($result)){
$mypath[]= $row['path'];
}
if(array_search($path, $mypath)) {
echo 'image exist';
}else{
echo 'image not found in array';
}
但这行不通,我做错什么了?
谢谢!
1条答案
按热度按时间laximzn51#
当一个更好的sql语句可以更快地完成任务时,为什么要构建一个数组并使用数组搜索呢?
如果将查询更改为此项,它将仅选择名称和路径匹配的行:
这应该在没有阵列开销的情况下完成相同的工作。
但是,请注意,如果路径或名称是用户提供的,并且未经检查就进入查询,那么代码很容易像现在这样进行sql注入。因此,在查询中使用这些值之前,应该使用mysqli\u real\u escape\u string()对这些值进行转义。