Maison > base de données > tutoriel mysql > le corps du texte

La différence entre # et $

王林
Libérer: 2019-10-25 17:57:12
original
22582 Les gens l'ont consulté

La différence entre # et $

La différence entre eux dans les termes les plus directs est la suivante : # équivaut à ajouter des guillemets doubles aux données, $ équivaut à afficher directement les données.

1. #Traitez les paramètres entrants comme des chaînes, c'est-à-dire qu'ils précompileront

select * from user where name = #{name}
Copier après la connexion

Par exemple, si je passe un csdn, alors ce sera

select * from user where name = 'csdn'
Copier après la connexion

2 , $ ne précompilera pas la valeur entrante

select * from user where name=${name}
Copier après la connexion

Par exemple, si je porte un csdn, alors la valeur transmise sera

select * from user where name=csdn
Copier après la connexion

3. L'avantage de # est qu'il peut empêcher l'injection SQL. , mais pas $.

Par exemple : l'utilisateur effectue une opération de connexion et le style de vérification SQL en arrière-plan est :

select * from user where username=#{name} and password = #{pwd}
Copier après la connexion

Si le nom d'utilisateur transmis depuis la réception est "wang" et le mot de passe est "1 ou 1=1", utilisez Si vous utilisez la méthode #, il n'y aura pas d'injection SQL. Si vous passez à la méthode $, l'instruction SQL deviendra

select * from user where username=wang and password = 1 or 1=1
Copier après la connexion

. Dans ce cas, l'injection SQL sera formé.

4. Lorsque vous utilisez l'ordre par paramètres dynamiques lors du tri de MyBatis, vous devez faire attention à l'utilisation de $ au lieu de #.

Tutoriel recommandé : Tutoriel mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!