当给定未填写表格时,获取数据库中的所有内容

时间:2018-03-22 00:13:52

标签: php mysql

表单请求电子邮件(可选)

<select name="mail">
    <option value="gmail">@gmail</option>
</select>

并搜索用户输入的电子邮件

$email = $_POST["email"];

我在数据库中进行查询,其中一个条件如下:

AND mail = '$email'

但是,此电子邮件可能未填写在表单上(不是必需的)

如果它为空,如何添加通配符并列出所有电子邮件?

我尝试过类似的事情:

<select name="mail">
    <option value="">ALL</option>
</select>

AND mail = '%$email' 

但它不起作用。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

创建没有此检查的查询,然后有条件地添加检查:

if (!empty($email)) {
    $query .= " AND mail = '$email';
}

但是,由于SQL注入,您确实应该避免将变量替换为SQL查询,而是使用参数化查询。有关动态构建查询的一般方法,请参阅Search Form with One or More (Multiple) Parameters