Я думаю, что опечатка - это ответ, но я должен указать на одну смертельную ошибку, которую вы допустили, а именно на то, что вы вводите введенные пользователем данные непосредственно в SQL-запрос. Это открывает ваш код для множества злонамеренных атак, называемых SQL инъекция атаки. Я не пытаюсь быть проповедником, но очень важно, чтобы вы прочитали и поняли эту статью, особенно часть о смягчении последствий внизу.
Я бы предложил вам использовать что-то вроде этого:
$query = 'SELECT first_name, last_name '.
'FROM formdata WHERE first_name LIKE ? OR last_name LIKE ?;';
$sth = mysqli_prepare($dbh, $query);
mysqli_stmt_bind_param($sth, "s", '%'.$first_name.'%');
mysqli_stmt_bind_param($sth, "s", '%'.$last_name.'%');
$result = mysqli_execute($sth);
Я знаю, что это немного дольше и сложнее, но поверьте мне, это избавит вас от мира головной боли. Чем раньше вы узнаете об этом и глубоко укоренитесь в своей психике, что вы никогда и никогда не сможете когда-либо написать запрос, который будет передавать неанизированный ввод прямо в базу данных, тем счастливее мы все будем (и чем дольше со временем ты сможешь сохранить свою работу.;).
Извините, если я продолжаю в том же духе, но, на мой взгляд, самый важный урок, который вам нужно извлечь на ранних этапах разработки веб-сайтов на основе баз данных, заключается в том, что вам действительно нужно уметь обнаруживать уязвимости, связанные с внедрением. где это происходит автоматически, и когда вы видите это, вы думаете: «Ооооооооо! Не делай этого !!!»