2009-03-27 8 views
4

im folgenden Stück Code, sehe ich, dass, wenn meine 'Beschreibung' ist etwas wie: " ' ' ", habe ich ein Problem beim Aktualisieren der Beschreibung auf die SQLite-Datensatz . Wie gehe ich mit dem Charakter um? Vielen Dank!Umgang mit einem Sonderzeichen in einer Zeichenfolge beim Speichern auf einen Datensatz auf sqlite

sql = wxString::Format(
"UPDATE event SET event_description='%s' WHERE id=%d", 
description.c_str(), 
event_id); 
rc = sqlite3_exec((sqlite3 *)_theDB, sql.c_str(), NULL, 0, &sqlError); 

Die OP beantwortet seine eigene Frage:

check this out FAQ wir die Vorkommen von 'mit '' in der Zeichenfolge

Antwort

1

Verdoppeln alle einfachen Anführungszeichen ersetzen müssen in der Beschreibung ist String eine Möglichkeit, dies zu tun. Auf diese Weise können Sie bösartige Beschreibungen vermeiden (siehe Bobby Tables).

'' '' 

Und was noch wichtiger ist, die potenziell gefährliche Beschreibung:

' WHERE 1=1 DELETE FROM Event -- 

wird die harmlos:

' ' 

wird

'' WHERE 1=1 DELETE FROM Event -- 

Weitere (sicherer) Art und Weise, ist zu verwenden prepared statements.