PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL: Problem mit " ' " Zeichen


mf_2
2005-09-12, 20:17:41
Hallo,

ich habe einen MySQL-Query:
myCommand.CommandText = "INSERT INTO namen(titel,url)" _
& "VALUES('" _
& titel _
& "', '" _
& URL _
& "')"
Dieser Query kommt aus einem VB .NET Script. Jetzt habe ich folgendes Problem: Wenn die Variable 'titel' oder 'URL' ein ' Zeichen enthält, stürzt das ganze Programm ab, weil dann der Query ned mehr stimmt. Wie kann ich die Zeichen trotzdem in die Datenbank bekommen? Muss ich sie dazu irgendwie maskieren?
Vielen Dank im Vorraus und sorry wegen der vielen Fragen in so einem kurzen Zeitraum.

Sephiroth
2005-09-12, 22:21:17
Ich bin mir nicht sicher aber ich glaube du mußt aus dem einen Apostroph einfach zwei machen ' -> ''

Replace(name,"'","''")

Gast
2005-09-13, 00:44:17
Ja, da stehen dann ja pro Feld drei ''' - und das ist eins zu viel.

Laß die Strings titel und URL vorher durch eine Funktion laufen, die die Sonderzeichen escapet. aus ' im titel sollte \' werden.

Alternativ kannst du im Query sicher auch das ` Accent Grave verwenden.

Aber wie dem auch sei - so wie es jetzt ist, ist das Programm anfällig für SQL Injection. ;)

mf_2
2005-09-13, 14:00:25
ich habs jetzt mal mit der coolstring2 = Uri.EscapeUriString(coolstring) funktion versucht, diese ersetzt aber andere zeichen,zb ein leerzeichen durch 20% oder so. Das ' wird ned ersetzt. Welche Funktion ersetzt miur auch das zeichen. oder muss ich sowas mit ner string replacement funktion oder so selber schreiben?

mf_2
2005-09-13, 15:23:11
problem gelöst,ich hab eine string replace funktion genommen.