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."'");
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
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
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 :)
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