Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich LIKE '%{Var}%' sicher mit vorbereiteten Anweisungen in SQL verwenden?

Wie kann ich LIKE '%{Var}%' sicher mit vorbereiteten Anweisungen in SQL verwenden?

Susan Sarandon
Freigeben: 2024-12-15 12:02:11
Original
542 Leute haben es durchsucht

How Can I Safely Use LIKE '%{Var}%' with Prepared Statements in SQL?

Vorbereitete Anweisungen mit LIKE '%{Var}%' effektiv nutzen

Beim Arbeiten mit bereinigten Benutzereingaben in SQL-Abfragen wird dies empfohlen um vorbereitete Anweisungen zu verwenden, um das Risiko von SQL-Injection-Angriffen zu mindern. Die Verwendung des LIKE-Musters „%{Var}%“ mit vorbereiteten Anweisungen kann jedoch zu Herausforderungen führen.

Falscher Ansatz:

Die folgende Syntax führt zu Fehlern:

$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';
Nach dem Login kopieren
$sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% ';
Nach dem Login kopieren

Richtig Vorgehensweise:

Um LIKE '%{Var}%' mit vorbereiteten Anweisungen korrekt zu verwenden, befolgen Sie diese Schritte:

  1. Erstellen Sie eine String-Variable, um das LIKE-Muster aufzunehmen:
$likeVar = "%" . $ yourParam . "%";
Nach dem Login kopieren
  1. Bereiten Sie die Abfrage mit a vor Platzhalter:
$ stmt = $ mysqli -> prepare('SELECT * FROM REGISTRY WHERE name LIKE ?');
Nach dem Login kopieren
  1. Binden Sie die LIKE-Variable an den Platzhalter:
$stmt -> bind_param('s', $likeVar);
Nach dem Login kopieren
  1. Führen Sie die aus Abfrage:
$stmt -> execute();
Nach dem Login kopieren

Erklärung:

  • $likeVar: Diese Variable enthält das LIKE-Muster mit dem vom Benutzer bereitgestellten Parameter als Präfix und Suffix Platzhalter.
  • prepare() vs. query(): Prepare() erstellt ein Anweisungsobjekt, das mehrfach ausgeführt werden kann mal mit unterschiedlichen Parametern, während query() eine Abfrage direkt ausführt.
  • bind_param(): Diese Methode verknüpft die vorbereiteten Anweisungsparameter mit ihren jeweiligen Variablenwerten. In diesem Fall ist der Platzhalter (?) an $likeVar gebunden.
  • execute(): Sobald die Parameter gebunden sind, führtexecute() die Abfrage mit den angegebenen Parametern aus.

Wenn Sie diese Schritte befolgen, können Sie LIKE '%{Var}%' sicher in Ihren SQL-Abfragen verwenden und dabei die bewährten Sicherheitspraktiken einhalten.

Das obige ist der detaillierte Inhalt vonWie kann ich LIKE '%{Var}%' sicher mit vorbereiteten Anweisungen in SQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage