【发布时间】:2012-06-27 17:10:21
【问题描述】:
我想执行一个参数化查询以按用户提供的参数执行搜索。有很多参数,并不是所有的参数都会一直提供。如何进行标准查询来指定所有可能的参数,但如果用户没有选择有意义的参数值,则忽略其中一些参数?
这是一个虚构的例子来说明我的目标
$sql = 'SELECT * FROM people WHERE first_name = :first_name AND last_name = :last_name AND age = :age AND sex = :sex';
$query = $db->prepare($sql);
$query->execute(array(':first_name' => 'John', ':age' => '27');
显然,这不起作用,因为提供的参数数量与预期参数的数量不匹配。我是否必须每次都只在 WHERE 子句中包含指定的参数来制作查询,或者有没有办法让其中一些参数被忽略或在检查时始终返回 true?
【问题讨论】:
标签: php mysql pdo where-clause