パラメータ化されたクエリを実行して、ユーザーが指定したパラメータで検索を実行したいと思います。かなりの数のパラメーターがあり、それらのすべてが常に提供されるわけではありません。可能なすべてのパラメーターを指定する標準クエリを作成できますが、ユーザーが意味のあるパラメーター値を選択しなかった場合、これらのパラメーターの一部を無視するにはどうすればよいですか?
これが私が何をしようとしているのかを説明するための架空の例です
$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を返す方法はありますか?