Ignoruj ​​szczególne kryteria WHERE

Chcę wykonać sparametryzowane zapytanie, aby przeprowadzić wyszukiwanie według parametrów podanych przez użytkownika. Istnieje kilka parametrów i nie wszystkie będą dostarczane przez cały czas. Jak mogę utworzyć standardowe zapytanie, które określa wszystkie możliwe parametry, ale zignoruj ​​niektóre z tych parametrów, jeśli użytkownik nie wybrał znaczącej wartości parametru?

Oto wymyślony przykład ilustrujący, do czego zmierzam

$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');

Oczywiście nie będzie to działać, ponieważ liczba podanych parametrów nie odpowiada liczbie oczekiwanych parametrów. Czy muszę tworzyć zapytanie za każdym razem, gdy tylko klauzula WHERE zawiera określone parametry, czy też istnieje sposób, aby niektóre z tych parametrów były ignorowane lub zawsze zwracały wartość true, gdy są zaznaczone?

questionAnswers(4)

yourAnswerToTheQuestion