Heim >Datenbank >MySQL-Tutorial >Wie verwende ich die IN-Klausel sicher mit Platzhaltern in SQLite für Android?
SQLite-Abfragen, die IN-Klauseln mit dynamischer Zeichenfolgenverkettung in Android verwenden, stehen vor den folgenden Herausforderungen:
Um eine IN-Klausel zu parametrisieren, verwenden Sie eine durch Kommas getrennte Folge von Fragezeichen, deren Länge der Anzahl der zu ersetzenden Werte entspricht. Vermeiden Sie die Verwendung externer Daten, um die Gültigkeit dynamischer Zeichenfolgen sicherzustellen.
<code>String[] names = { "name1", "name2" }; // 动态获取值 String query = "SELECT * FROM table WHERE name IN (" + makePlaceholders(names.length) + ")"; Cursor cursor = mDb.rawQuery(query, names);</code>
<code>public static String makePlaceholders(int len) { if (len < 1) { throw new IllegalArgumentException("Length must be at least 1"); } StringBuilder sb = new StringBuilder(len * 2 - 1); sb.append("?"); for (int i = 1; i < len; i++) { sb.append(",?"); } return sb.toString(); }</code>
Dieser Ansatz stellt sicher, dass Platzhalter korrekt ersetzt werden und verhindert SQL-Injection.
Das obige ist der detaillierte Inhalt vonWie verwende ich die IN-Klausel sicher mit Platzhaltern in SQLite für Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!