我正在尝试从数据库行搜索数组中的给定值 -
$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';
}
但这不起作用,我做错了什么?
谢谢!
答案 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/转义这些值。