Escapar integer con "(int)" para mysql_query

Iniciado por Skeletron, 7 Febrero 2012, 21:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Hola gente.
Cuando sabemos que una variable va a tener solamente valores NUMERICOS. es suficiente hacer: (int) antes de la variable? o es necesario escribir el "mysql_real_escape_string"???

o sea, esto es valido y 100% seguro?:
mysql_query("SELECT * FROM personas WHERE id_persona = '".(int)$id."'");

#!drvy

Teóricamente si. Porque int es lo que dice... integer, convierte cualquier cosa a un entero xD.

PD: Otra cosa es que dicho numero sea -2 en vez de 2 xD.


Saludos

2Fac3R

Aparte de lo que te han dicho, se podria hacer que se tome el tipo de variable ( gettype() ) y con condicionales (un if, por ejemplo) haga X en caso de ser entero, sino...Y.

Podria ser otra opcion.
Zalu2
Escuela de Hackers & Programación. http://ihackndev.blogspot.com/

Skeletron

Pero antes de hacer tantas cosas, hago el: mysql_real_escape_string().
Yo siempre quería saber si con (int) ya esquivo los SQL Inyection.

Gracias :)

2Fac3R

Cita de: Skeletron en  8 Febrero 2012, 04:17 AM
Yo siempre quería saber si con (int) ya esquivo los SQL Inyection.

Si lo que se quiere es un dato entero, el (int) te servira perfecto para las SQLi ;)
Zalu2
Escuela de Hackers & Programación. http://ihackndev.blogspot.com/