Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sql interroge les variables de liaison plutôt que de les spécifier

Bien que vous puissiez avoir votre requête parfaitement sûre sans liaison (en formatant toutes les variables manuellement), l'utilisation d'instructions préparées pour représenter vos données dans la requête est en effet le seul moyen approprié.

L'importance d'utiliser des déclarations préparées est souvent mal évaluée, alors j'aimerais clarifier les avantages réels :

  • une déclaration préparée rend le formatage (ou la manipulation) approprié inévitable .
  • l'instruction préparée effectue le formatage (ou la gestion) approprié au seul endroit approprié - juste avant l'exécution de la requête, pas ailleurs, donc notre sécurité ne dépendra pas de sources aussi peu fiables que
    • une fonctionnalité "magique" de PHP qui gâte les données plutôt que de les sécuriser.
    • bonne volonté d'un (ou plusieurs) programmeurs, qui peuvent décider de formater (ou de ne pas formater) notre variable quelque part dans le déroulement du programme. C'est le point le plus important.
  • l'instruction préparée affecte la valeur même qui entre dans la requête, mais pas la variable source, qui reste intacte et peut être utilisée dans le code suivant (à envoyer par e-mail ou à afficher à l'écran).
  • une instruction préparée peut raccourcir considérablement le code de l'application, en effectuant tout le formatage en arrière-plan (*uniquement si le pilote le permet).