Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstellt man sicher dynamische LIKE-Bedingungen in von MySQLi vorbereiteten Anweisungen?

Wie erstellt man sicher dynamische LIKE-Bedingungen in von MySQLi vorbereiteten Anweisungen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 18:24:11851Durchsuche

How to Securely Build Dynamic LIKE Conditions in MySQLi Prepared Statements?

Erstellen Sie SELECT-Abfragen mit dynamischen LIKE-Bedingungen als vorbereitete MySQL-Anweisungen

Bei der Arbeit mit Benutzereingaben bieten vorbereitete Anweisungen eine sichere Möglichkeit, SQL auszuführen Abfragen. Um dynamische Zahlen von LIKE-Bedingungen basierend auf Benutzereingaben zu verarbeiten, ist ein benutzerdefinierter Ansatz erforderlich.

Das Problem

Der angegebene Code zielt darauf ab, eine vorbereitete Anweisung mit einer Variablen zu erstellen Anzahl der LIKE-Bedingungen. Es liegt jedoch ein Fehler vor, bei dem die %-Zeichen nicht um die Parameter, sondern um die Platzhalter platziert werden.

Die Lösung

Um das Problem zu beheben, sollten die %-Zeichen umbrochen werden die Parameter in der Konstruktvariablen. Hier ist der geänderte Code:

foreach ($search_exploded as $search_each) {
    $x++;
    if ($x == 1) {
        $construct .= "name LIKE ?%";  // % now wraps the parameter
    } else {
        $construct .= " or name LIKE ?%";  // % now wraps the parameter
    }
}

Dadurch wird eine Konstruktzeichenfolge generiert, die der folgenden ähnelt:

name LIKE %?% or name LIKE %?% or ...

Zusätzliche Verbesserungen

Die bereitgestellten PHP-Snippets nutzen objektorientiertes MySQL anstelle der prozeduralen Syntax. Darüber hinaus stellt die Lösung sicher, dass dynamische WHERE-Klauselausdrücke und Datentypen berücksichtigt werden, sodass keine vorbereitete Anweisung erforderlich ist, wenn keine Bedingungen vorliegen.

Fazit

Durch Befolgen dieser Schritte können Sie effektiv dynamische LIKE-Bedingungen in vorbereiteten MySQL-Anweisungen erstellen und so Ihre SQL-Abfrageverarbeitungsfunktionen erheblich verbessern.

Das obige ist der detaillierte Inhalt vonWie erstellt man sicher dynamische LIKE-Bedingungen in von MySQLi vorbereiteten Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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