我有一个 PHP 文件,它接受七个变量,如下所示:
$name=$_REQUEST['membername'];
$email=$_REQUEST['email'];
$dob=$_REQUEST['dob'];
$gender=$_REQUEST['gender'];
$phone=$_REQUEST['phone'];
$county=$_REQUEST['county'];
$IP=$_REQUEST['IP'];
其中一些不会被设置。我想要做的是构造一个查询来搜索members表,这样如果只设置了$email和$dob,它将只按$email和$dob搜索,而忽略其他。或者,如果仅设置了 $phone、$name 和 $gender,则它将仅搜索这三列。
是否有比构建一大块涵盖所有可能排列的 if isset 函数更简单的方法?
最佳答案
如果您不想搜索字段,请为参数传递 NULL 并构造 WHERE 子句,例如...
WHERE
( (@parameter1 IS NULL) OR (column1 = @parameter1) )
AND
( (@parameter2 IS NULL) OR (column2 = @parameter2) )
我没有花太多时间在 MYSQL 上,所以语法可能有点不对劲,但你明白了。
关于MYSQL 查询带有可能未设置的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763370/