sesusera adlı üyeden alıntı: mesajı görüntüle
İnteger verilerde tırnak kullanmayacağını biliyorsunuz ancak değişken türü atamayı deneyebilirsiniz.
$id = abs(intval( $_GET['id'] ));
$id = abs((int) $_GET['id']);
// Verdiğim fonksiyonu burada kullanmanıza bile gerek kalmıyor.

Vermiş olduğum örnekten gitmediğiniz için hiç bir şekilde size katılmıyor ve hala benim kullandığım şekilde aşılamayacağını savunuyorum aksini ispatlarsanız sevinirim benim örneklerimden

Ek olarak php'de bu şekilde dışarıdan gelen bir her hangi değer açık oluşturur sql sorgusunda yazdırılmaz. eğer kullanılacak ise de değişken tipi integer olarak belirtilmelidir aksi takdirde oradan join atıp başka tabloyada bağlanılabilir

Benim verdiğim örnekte tırnak içerisinde kullanmama rağmen direk sql sorgusu yazdırılabilir halde alıp alın açık var diyorsunuz komik bir yaklaşım.
Siz şöyle yapın isterseniz daha doğru bir örnek olur
$_GET['sql'] = 'SELECT * FROM users';
mysql_query(clean($_GET['sql']));

Lütfen hala iddialaşma gayretleri içerisinde iseniz vermiş olduğum örnek üzerinden gidin.
Olayda büyük bir yanlış anlaşılma olmuş sanırım yanlış anlamışım ben sql injection problemini kökten çözer şeklinde anladım.Yanlışım varsa affola..