Der Unterschied zwischen ihnen ist im direktesten Sinne: # entspricht dem Hinzufügen doppelter Anführungszeichen zu den Daten, $ entspricht der direkten Anzeige der Daten.
1. #Behandeln Sie die eingehenden Parameter als Zeichenfolgen, d , $ kompiliert den eingehenden Wert nicht vor
select * from user where name = #{name}
Wenn ich beispielsweise einen CSDN trage, lautet der übergebene Wert
select * from user where name = 'csdn'
3. Der Vorteil von # besteht darin, dass es die SQL-Injektion verhindern kann , aber $ nicht.
Zum Beispiel: Der Benutzer führt einen Anmeldevorgang durch und der SQL-Überprüfungsstil im Hintergrund lautet:
select * from user where name=${name}
Wenn der von der Rezeption übermittelte Benutzername „wang“ und das Passwort „1“ lautet oder 1=1", verwenden Wenn Sie die #-Methode verwenden, erfolgt keine SQL-Injektion. Wenn Sie zur $-Methode wechseln, wird die SQL-Anweisung zu
select * from user where name=csdn
. In diesem Fall erfolgt die SQL-Injektion gebildet.
4. Wenn Sie beim Sortieren von MyBatis die Reihenfolge nach dynamischen Parametern verwenden, müssen Sie darauf achten, $ anstelle von # zu verwenden.
Empfohlenes Tutorial:
MySQL-TutorialDas obige ist der detaillierte Inhalt vonDer Unterschied zwischen # und $. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!