Добавянето на is_numeric
няма да направи това много вероятна пълноценна sql атака, но is_numeric
просто не е много точно:
is_numeric('0xdeadbeef') // true
is_numeric('10e3') // true
Вероятно е по-добре да използвате филтри:
if (false !== ($id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT))) {
}