SQL-Werte mit Hochkommas

  • 8 Antworten
  • Neuester Beitrag
Diskutiere SQL-Werte mit Hochkommas im Android App Entwicklung im Bereich Betriebssysteme & Apps.
F

FireRider

Neues Mitglied
Hallo Leute

In meiner App verwende ich eine SQLite Datenbank, in die jeweiligen Tabellen werden Eingaben die vom Benutzer kommen gespeichert.
Funktioniert alles wunderbar, allerdings hat mir ein Freund gestern gesagt ich solle mal irgendwo ein Hochkomme (also ein ' ) eingeben und siehe da, ein FC.
Weiss jemand wie ich diesen Error abfangen kann? Ist es möglich das ' in die Spalten zu schreiben oder soll ich den Benutzer darauf aufmerksam machen dass das nicht möglich ist?

Danke und Gruss, FireRider

PS: Gibt es noch mehr solche Zeichen, die zu FC's führen?. Habe gerade noch ein paar getestet, bis auf ' gingen alle (z.B. & " - ...)
 
S

swordi

Lexikon
mach einfach beim insert

DatabaseUtils.sqlEscapeString(DEIN_STRING);

damit gehts
 
F

FireRider

Neues Mitglied
Danke für die Antwort.
Hat mir leider nicht geholfen, habe immer noch den gleichen Fehler.
 
R

realgun

Ambitioniertes Mitglied
Wie erzeugst Du denn den Insert / Update - Befehl? Hast Du es schon mal mit Paramentern versucht?
 
S

swordi

Lexikon
FireRider schrieb:
Danke für die Antwort.
Hat mir leider nicht geholfen, habe immer noch den gleichen Fehler.


zeig mal den code, wenn ich dein problem richtig verstanden habe, gehts ganz sicher so, wie ich es geschrieben habe.
 
F

FireRider

Neues Mitglied
Mein Insert-Befehl sieht so aus:
Code:
myDB.execSQL("INSERT INTO " + TABLE_NAME + " (titel, datum, zeit) VALUES ('" + titel + "','" + datum + "','" + zeit + "'););
So hat es mit EscapeString ausgesehen (Habe es da vorerst nur mit dem Titel getestet):
Code:
myDB.execSQL("INSERT INTO " + TABLE_NAME + " (titel, datum, zeit) VALUES ('" + DatabaseUtils.sqlEscapeString(titel) + "','" + datum + "','" + zeit + "'););
Die Spalten sind allesamt VARCHAR und die Werte die ich einfülle sind Strings.
 
R

realgun

Ambitioniertes Mitglied
Dann versuch es doch mal mit "Prepared Statements":
Code:
SQLiteStatement stmt = myDB.compileStatement("INSERT INTO " + TABLE_NAME + " (titel) VALUES (?)";);
stmt.bindString(1, "Text mit 'Hochkomma'");
stmt.execute();
 
F

FireRider

Neues Mitglied
Danke, damit klappt es!
 
S

swordi

Lexikon
FireRider schrieb:
Mein Insert-Befehl sieht so aus:
Code:
myDB.execSQL("INSERT INTO " + TABLE_NAME + " (titel, datum, zeit) VALUES ('" + titel + "','" + datum + "','" + zeit + "'););
So hat es mit EscapeString ausgesehen (Habe es da vorerst nur mit dem Titel getestet):
Code:
myDB.execSQL("INSERT INTO " + TABLE_NAME + " (titel, datum, zeit) VALUES ('" + DatabaseUtils.sqlEscapeString(titel) + "','" + datum + "','" + zeit + "'););
Die Spalten sind allesamt VARCHAR und die Werte die ich einfülle sind Strings.
du machst ein sqlescapestring und trotzdem ' drum herum. dann ist es auch kein wunder das es nicht klappt ;)
 
Ähnliche Themen - SQL-Werte mit Hochkommas Antworten Datum
3
4
2