if (!is_numeric($_GET['id']) or !is_int($_GET['id']+0))
exit ("Ошибка!");
SELECT * FROM `users` WHERE `id` = '$_GET[id]'
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
2. От SQL инъекций защищает https://www.php.net/manual/ru/mysqli.real-escape-s... непосредственно перед запросом.
/index.php?uid=-777 UNION SELECT password FROM userlist
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT) ?: filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
Очень громоздкая конструкция выходит. Пользоваться такой постоянно неудобно.
$id = abs((int)$_GET['id']);
filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT)
$x = (int) $somevar