2009-03-27 7 views
4

dans le morceau de code suivant, je vois que lorsque ma 'description' est quelque chose comme: " ' ' ", J'ai un problème de mise à jour de la description de l'enregistrement sqlite . Comment puis-je gérer le caractère '. Merci!gérer un caractère spécial dans une chaîne tout en stockant un enregistrement sur 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); 

L'OP a répondu à sa propre question:

vérifier cela FAQ nous devons remplacer les occurences de 'avec '' dans la chaîne

Répondre

1

Doubler tous les guillemets simples dans la chaîne de description est une façon de le faire. De cette façon, vous pouvez éviter les descriptions malveillantes (voir Bobby Tables).

' ' 

devient:

'' '' 

Et plus important encore, la description potentiellement dangereuse:

' WHERE 1=1 DELETE FROM Event -- 

devient le danger:

'' WHERE 1=1 DELETE FROM Event -- 

Une autre façon, (plus sûr) est utiliser prepared statements.

Questions connexes