Essayez ceci
WHERE contact_first_name IN (".implode(', ', array_fill(0, count($search), '%s')).") OR contact_last_name IN (".implode(', ', array_fill(0, count($search), '%s')).")
MISE À JOUR
La bonne réponse à cette question est La requête est correcte, ce sont les paramètres dynamiques qui sont erronés qui rendent la syntaxe de la requête erronée. C'était en fait dans la section des commentaires juste sous cette réponse, alors fusionnez-la avec les réponses acceptées !