sql >> Base de Datos >  >> RDS >> Mysql

Sql consulta variables vinculantes frente a especificarlas

Aunque puede tener su consulta perfectamente segura sin vinculación (formateando todas las variables manualmente), el uso de declaraciones preparadas para representar sus datos en la consulta es, de hecho, la única forma adecuada.

La importancia de usar declaraciones preparadas a menudo se juzga mal, por lo que me gustaría aclarar los beneficios reales:

  • la declaración preparada hace que el formato (o el manejo) sea inevitable .
  • la declaración preparada tiene el formato (o manejo) adecuado en el único lugar adecuado - justo antes de la ejecución de la consulta, no en otro lugar, por lo que nuestra seguridad no dependerá de fuentes tan poco confiables como
    • alguna característica 'mágica' de PHP que estropea los datos en lugar de hacerlos seguros.
    • buena voluntad de uno (o varios) programadores, que pueden decidir formatear (o no formatear) nuestra variable en algún lugar del flujo del programa. Ese es el punto de gran importancia.
  • la declaración preparada afecta el valor mismo que se incluye en la consulta, pero no la variable de origen, que permanece intacta y puede usarse en el código adicional (para enviarse por correo electrónico o mostrarse en pantalla).
  • la declaración preparada puede hacer que el código de la aplicación sea mucho más corto, haciendo todo el formato detrás de escena (*solo si el controlador lo permite).