在php中搜索多个值

在php中搜索多个值,php,mysql,search,select,resultset,Php,Mysql,Search,Select,Resultset,我有一个表单,其中有三个文本字段,用户在其中任何一个或所有字段中输入电子邮件,我需要检查该电子邮件是否存在于数据库中。 问题是,可能是用户只填写了1个字段,可能是我从数据库中得到了多个结果,我用php编写的查询是 $sql = "SELECT * FROM user_email WHERE (emailAddr = '{$d1]}' OR emailAddr = '{$d2}' OR emailAddr = '{$d3}') AND email!='' LIMIT 1"; 考虑到不同的用例,其

我有一个表单,其中有三个文本字段,用户在其中任何一个或所有字段中输入电子邮件,我需要检查该电子邮件是否存在于数据库中。 问题是,可能是用户只填写了1个字段,可能是我从数据库中得到了多个结果,我用php编写的查询是

$sql = "SELECT * FROM user_email WHERE (emailAddr = '{$d1]}' OR emailAddr = '{$d2}' OR emailAddr = '{$d3}') AND email!='' LIMIT 1";

考虑到不同的用例,其中可能有空字段,没有写入任何内容,我做得对吗?

我完全忽略了您如何使用括号中的语法,但可能是这样的:

SELECT
  * 
FROM 
  user_email 
WHERE 
  email 
IN 
  ('$d1','$d2','$d3') 
LIMIT 
  1

也就是说,如果有一封电子邮件等于这三封邮件中的一封,则返回该行。

LIMIT 1将确保您最多得到一行。如果用户不填写任何内容,并且user_电子邮件表中有一个不应填写的空行,该怎么办returned@user1765876然后在运行查询之前,使用
过滤器验证电子邮件!或者添加“and email not null and email!=”@user1765876或使用SQL查询,我认为类似这样的内容,例如:
SELECT*FROM user\u email,其中像“%”和“%$d1”、“%$d2”、“%$d3”这样的电子邮件在(“$d1”、“d2”、“d3”)
(未测试,但应该可以工作)