Verwendung des „Gefällt mir“-Platzhalters in vorbereiteten Anweisungen
Verstehen des Problems
Bei Datenbankabfragen , wird der „Gefällt mir“-Platzhalter üblicherweise für die Suche nach Daten basierend auf einem Schlüsselwortmuster verwendet. Bei der Verwendung vorbereiteter Anweisungen zur Verbesserung der Abfragesicherheit und -leistung kann es schwierig sein, den „like“-Platzhalter effektiv zu integrieren.
Lösung mit PreparedStatement
Um das „like“ zu verwenden " Platzhalterzeichen in einer vorbereiteten Anweisung verwenden, ändern Sie die SQL-Zeichenfolge selbst nicht. Legen Sie stattdessen „keyword%“ innerhalb des Werts fest, den Sie in der Anweisung festgelegt haben. Hier erfahren Sie, wie Sie dies für verschiedene Suchvorgänge tun Typen:
Präfix-Match:
// Replace escape characters to prevent conflict with wildcard notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Suffix-Match:
pstmt.setString(1, "%" + notes);
Global Übereinstimmung:
pstmt.setString(1, "%" + notes + "%");
Durch Festlegen des „Schlüsselworts %“ im Wert, der der vorbereiteten Anweisung zugewiesen ist, können Sie Wildcard-Suchen effizient durchführen, ohne die Abfragesicherheit oder -leistung zu beeinträchtigen.
Das obige ist der detaillierte Inhalt vonWie verwende ich den „Gefällt mir'-Platzhalter in vorbereiteten Aussagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!