Имя столбца не должно заключаться в одинарные или двойные кавычки.
У вас есть двойная кавычка вокруг имени столбца в предложении where.
$result = $db->executeQuery('SELECT * FROM `person`
WHERE "'.$searchOn.'" LIKE "%'.$critera.'%" ');
Окончательный запрос: -
SELECT * FROM `person` WHERE "field_name" LIKE ...
Это вызывает ошибку mysql.
Вы можете заключить имя столбца в `` обратные галочки ”, чтобы избежать любой странной ошибки, снова вызывающей зарезервированные слова mysql.
EDIT
Ваш запрос должен быть таким.
$result = $db->executeQuery('SELECT * FROM `person`
WHERE `'.$searchOn.'` LIKE "%'.$critera.'%" ');