PDO делает это даже проще, чем вы:
$stmt = $db->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute([ 'name' => $_GET['name'] ]);
Вот и все.Готово.
Важно, чтобы вы не избегали вещей при использовании значений заполнителей, особенно при сопоставлении.htmlspecialchars
является только релевантным в контексте HTML, кроме того, это наносит ущерб.Если вы показываете данные в JSON, в электронном письме или где-либо еще, используйте этот контекст и этот контекст только для * .
Если у кого-то есть имя, например «A & W», то при поискевы будете манипулировать вводом и на самом деле будете искать «A & W», что не соответствует их имени.Они получат ноль совпадений, а затем спросят вас, что не так с вашим сайтом.
only вещь, которую вы должны сделать с входными данными, - обрезать любые символы, которые могут помешать работе.поиск соответствия, например, начальные и конечные пробелы, которые кто-то мог случайно ввести .