Опитайте това
WHERE contact_first_name IN (".implode(', ', array_fill(0, count($search), '%s')).") OR contact_last_name IN (".implode(', ', array_fill(0, count($search), '%s')).")
АКТУАЛИЗАЦИЯ
Правилният отговор на този въпрос е Заявката е правилна, това са грешните динамични параметри, които причиняват грешен синтаксис на заявката. Всъщност беше в секцията за коментари точно под този отговор, така че го обединихте с приетите отговори!