2011-06-16 14 views
7

He utilizado la mysql_query() para hacer mis cosas pero ahora estoy cambiando a las declaraciones preparadas por dos razones:
rendimiento y ninguna inyección sql posibilidadPHP: declaraciones preparadas (novato), solo necesito confirmar esto sobre la inyección SQL

Así es como lo estoy usando:

function add_new_user($e_mail1,$username,$pass) 
    { 
    require_once "db.php"; 

$stmt = $mysqli->prepare("INSERT INTO un_users VALUES ('',?, ?,0,0,?,0)"); 
$stmt->bind_param('sss', $e_mail1, $username,$pass); 

$stmt->execute();  
$stmt->close(); 
    } 

no estoy sanitización las tres variables ($e_mail1,$username,$pass) cuando he dejado pasar a la función o cualquier otra cosa.

¿Lo estoy haciendo de la forma correcta o me equivoqué o necesitaba hacer algo más? Soy un novato con esto (todavía revisando los documentos) así que siéntase libre de regar su conocimiento: D

¡Gracias!

+0

Parece correcto, pero aún podría querer desinfectar la entrada un poco ... – tplaner

+0

Las declaraciones preparadas se encargarán de la desinfección por usted. Eso sí, no impiden que los datos MALOS ingresen a la base de datos ... solo que los datos que estás utilizando no 'romperán' la consulta, por lo que causan un error de sintaxis o subvierten el propósito de la consulta. –

+1

@evolve ¿Qué quieres decir con eso? – alex

Respuesta

3

Sí, lo está haciendo correctamente.

Cuestiones relacionadas