Wypróbuj to
WHERE contact_first_name IN (".implode(', ', array_fill(0, count($search), '%s')).") OR contact_last_name IN (".implode(', ', array_fill(0, count($search), '%s')).")
AKTUALIZUJ
Prawidłowa odpowiedź na to pytanie to Zapytanie jest prawidłowe, to nieprawidłowe parametry dynamiczne powodują, że składnia zapytania jest nieprawidłowa. W rzeczywistości znajdował się w sekcji komentarzy tuż pod tą odpowiedzią, więc połączyłem go z zaakceptowanymi odpowiedziami!