"¿Esto que es? Pues dejar esta sentencia ya preparada"Servirá para que, estando ya preparada, cargue mucho más rápido las consultas, y evitar las inyecciones de SQL, ya que las instrucciones preparadas antes de trabajar con el dato introducido por el usuario, comprueban tipos.
Para preparar una consulta, la sintaxis sería
PREPARE alumnosInsertDinamic FROM “INSERT INTO alumnos
VALUES (?,?)”;
Los interrogantes son porque esta inserción contendrá dos datos. Y la ejecutamos pasandole las variables con los datos a almacenar
EXECUTE alumnosInsertDinamic USING @id, @nombre;
Y una vez que ya no se usa, se elimina de memoria con la siguiente instrucción:
DEALLOCATE PREPARE alumnosInsertDinamic;
Los procedimientos en sí ya están preparados, entonces, ¿por qué sigo utilizando sentencias preparadas en procedimientos, que ya lo están? Para realizar SQL dinámico
SQL dinámico
Es una instrucción que se ejecuta en tiempo de ejecución, al contrario que las estáticas que se hacen en tiempo de compilación.
Un ejemplo por ejemplo sería
Esto es un muy mal ejemplo, porque haciendo
call sqlDinamico('delete from alumnos where id >=
1000');
Te acaban de pulir, si existen los permisos adecuados, los alumnos con id mayor o igual a 1000. ¿Menuda putada, eh?
0 comentarios:
Publicar un comentario