Text mit Anführungszeichen in DB bekommen?!?!
Nina
- asp.net
Hallo!
In einem ASP-Skript bastle ich ein SQL-Insert-Statement zusammen:
insert into TABLE (TEXT) values ('Eingabetext')
Der Wert von 'Eingabetext' stammt aus einem Formular, wo der User selbstverständlich auch ' und " verwenden kann.
Problem:
Ein ' beendet den String in SQL, ein " in ASP (wo ich ja den SQL-String u.a. aus Variablen zusammensetze).
Gibt es eine Möglichkeit wie etwa " oder so, damit die Zeichen sozusagen ihre Wirkung verlieren.
Danke
Nina
Hi,
wenn nix hilft, dann mach die nette Recordset-Variante, mach ich bei solchen Inserts meistens:
Dim rs
Set rs = Server.CreateObject("ADODB.RECORDSET")
Bei so einem Recordset (irgendwie kann man das auf einer Tabelle öffnen, hab leider die Syntax gerade nicht parat) gibt es dann ein
rs.edit
rs.fields("feld") = var1
rs.fields("feld2") = var2
rs.update
MfG
Rouven
Hoi Nina
leidige Sache, hab mir auch schon mal die Zähne ausgebissen. Meine Lösung: ich ersetze die Zeichen durch HTMl-Bezeichnungen, habe dafür eine kleine Funktion geschrieben:
function replapo(apoStr)
replapo = replace(apoStr,chr(39),"'")
end function
Der Wert wird dann aus dem Formular gelesen und in einer Variable gespeichert, wobei die Funktion verwendet wird:
CustomerName = replapo(Request.Form("CustomerName"))
und danach das sql-statement:
sql = "UPDATE LagCustomer SET CustomerName = '" & CustomerName & "'"
Conn.Execute sql
Damit hast du die ' in deinem Wert eliminiert. die " sollten stellen dann eigentlich kein Problem mehr dar da im sql-statement der ganze Wert dann zwischen ' steht.
Der Nachteil dieser Methode: Der Wert enthält dann in der Datenbank nicht mehr das richtige '-Zeichen sondern '. solange man den Wert wieder als HTML wieder ausgibt stellt das kein Problem dar. Will man jedoch den Wert irgendwo sonst weiter verwenden müsste dann mit einer entsprechenden Funktion das ganze wieder zurückverwandelt werden.
Lieb Grüsse //trukli58
Hallo!
In einem ASP-Skript bastle ich ein SQL-Insert-Statement zusammen:
insert into TABLE (TEXT) values ('Eingabetext')
Der Wert von 'Eingabetext' stammt aus einem Formular, wo der User selbstverständlich auch ' und " verwenden kann.
Problem:
Ein ' beendet den String in SQL, ein " in ASP (wo ich ja den SQL-String u.a. aus Variablen zusammensetze).Gibt es eine Möglichkeit wie etwa " oder so, damit die Zeichen sozusagen ihre Wirkung verlieren.
Danke
Nina
Hi einfach die single quotes durch double quotes ersetzen durch also ' zu '' und beim Auslesen umgekehrt.
das funzt