如何创建数组数据库行然后查找数组中是否存在值?

时间:2016-10-06 20:36:22

标签: php mysql

我正在尝试从数据库行搜索数组中的给定值 -

$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 个答案:

答案 0 :(得分:0)

当更好的SQL语句可以更快地完成工作时,为什么要构建数组并使用数组搜索?

如果您将查询更改为此选项,则只会选择名称路径匹配的行:

<%= form_for(@post) do |f| %>
  <div class="field">
    <%= f.label :post %><br>
    <%= f.text_area :title %>
    <%= f.text_area :content %>
  </div>
  <div class="actions">
    <%= f.submit "Create" %>
  </div>
<% end %>

这应该在没有数组开销的情况下完成相同的工作。

但是,请注意,如果路径或名称是用户提供的,并且未经检查进入查询,则代码很容易像现在一样进行SQL注入。因此,在查询中使用它们之前,您应该使用http://www.monodevelop.com/download/linux/转义这些值。