Wildcards in Java PreparedStatements
Hier ist meine aktuelle SQL-Anweisung:
SEARCH_ALBUMS_SQL = "SELECT * FROM albums WHERE title LIKE ? OR artist LIKE ?;";
Er zurückkehrte, exakte übereinstimmungen zu den album-oder Künstlernamen, aber nichts anderes. Ich kann nicht mit einem '%' in der Anweisung oder bekomme ich Fehler.
Wie füge ich Sie Platzhalterzeichen, um eine vorbereitete Anweisung?
(Ich bin mit Java5 und MySQL)
Dank!
- Hier ist ein bessere version der gleichen Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen Sie die % in der gebundenen variable. So müssen Sie
Sollten Sie ESCAPE '!' Ihnen zu erlauben, die spezielle escape-Zeichen, die Angelegenheit zu WIE in die Sie Eingaben.
Bevor mit Titel oder Künstler sollten Sie desinfizieren Sie Sie (wie oben gezeigt) durch die Flucht Sonderzeichen (!, %, _, und [) mit einer Methode wie diese:
!_
und [ mit ![ es sollte vor allem Milderung der SQL-injection-Gefahr hier._
behandelt, als etwas anderes als eine wörtliche_
?