Hallo, ich moechte ein Html-Dokument in eine SQL-Datenbank speichern. Dabei stosse ich auf Probleme mit den Anfuehrungszeichen... Die Loesung ist klar, man muss ein "\" davor setzen. Frage: 1) Gibt es eine Standardfunktion die das uebernimmt? Oder muss ich mir eine selber basteln? 2) Ich bin kein regelmaessiger C/C++-Programmierer, und kenne deswegen die Standardbibliotheken nicht gut. Gibt es eine gute, komplette Beschreibung der Standardbibliotheken? Gruss Karl
Moin, * Karl Sinn wrote (2004-04-01 19:35):
ich moechte ein Html-Dokument in eine SQL-Datenbank speichern. Dabei stosse ich auf Probleme mit den Anfuehrungszeichen... Die Loesung ist klar, man muss ein "\" davor setzen.
Frage: 1) Gibt es eine Standardfunktion die das uebernimmt? Oder muss ich mir eine selber basteln?
In welcher Sprache?
2) Ich bin kein regelmaessiger C/C++-Programmierer, und kenne deswegen die Standardbibliotheken nicht gut. Gibt es eine gute, komplette Beschreibung der Standardbibliotheken?
Klar, zB. hier: http://www.gnu.org/software/libc/manual/html_node/index.html Thorsten -- It's better to vote for what you want and not get it than to vote for what you don't want and get it. - Eugene Debs
Moin, * Karl Sinn wrote (2004-04-01 23:55):
Am Donnerstag, 1. April 2004 22:41 schrieb Thorsten Haude:
In welcher Sprache?
Sorry, ich war da wohl nicht deutlich genug :-)
In C/C++
Eine Funktion gibt's da sicher nicht, höchstens in irgendwelchen Klassenbibliotheken. Das ist aber nicht so furchtbar kompliziert, das man es nicht in relativ kurzer Zeit programmieren könnte. Versuch es mal, es ist mindestens eine gute Übung die die Stringfunktionen von C oder C++. Thorsten -- If you don't claim your humanity, you will become a statistic. - Tyler Durden
Karl Sinn wrote:
Hallo,
Am Donnerstag, 1. April 2004 22:41 schrieb Thorsten Haude:
In welcher Sprache?
Sorry, ich war da wohl nicht deutlich genug :-)
In C/C++
http://www.c-plus-plus-archiv.de/forum/show.ca/message/8704/ Diese Function einfach auf Deine Bedürfnisse (\") umbauen. Grusz Mathias -- CU in www.meeloon.de --
Karl Sinn wrote:
Hallo,
ich moechte ein Html-Dokument in eine SQL-Datenbank speichern. Dabei stosse ich auf Probleme mit den Anfuehrungszeichen... Die Loesung ist klar, man muss ein "\" davor setzen.
Frage: 1) Gibt es eine Standardfunktion die das uebernimmt? Oder muss ich mir eine selber basteln? 2) Ich bin kein regelmaessiger C/C++-Programmierer, und kenne deswegen die Standardbibliotheken nicht gut. Gibt es eine gute, komplette Beschreibung der Standardbibliotheken?
Hier lief vor einigen Tagen der Thread "Mit sed ein single quote filtern" Da kam dieser Vorschlag: sed -e "s/'//g" datei Das kann man doch so ändern: sed -e "s/"/\"/g" datei Oder irre ich? Grusz Mathias, ein fleissiger Mitleser -- CU in www.meeloon.de --
Hi Mathias! Mathias Uebel schrieb:
[" durch \" ersetzen]
Hier lief vor einigen Tagen der Thread "Mit sed ein single quote filtern" Da kam dieser Vorschlag:
sed -e "s/'//g" datei Das kann man doch so ändern: sed -e "s/"/\"/g" datei
Oder irre ich?
Ja, ich glaube, du irrst. Sowohl die Double-quotes als auch der Backslash müssten bei deinem Vorschlag escaped werden. Mein Vorschlag würde so aussehen: sed 's/"/\\"/g' datei Dein Vorschlag müsste wohl in etwa so umgesetzt werden: sed "s/\"/\\\\\"/g" datei Gruß, Michael
Hallo, Am Thu, 01 Apr 2004, Karl Sinn schrieb:
ich moechte ein Html-Dokument in eine SQL-Datenbank speichern. Dabei stosse ich auf Probleme mit den Anfuehrungszeichen... Die Loesung ist klar, man muss ein "\" davor setzen.
Frage: 1) Gibt es eine Standardfunktion die das uebernimmt? Oder muss ich mir eine selber basteln?
Welche Datenbank? Programmiersprache? die libmysqlclient / libmysql enthaelt eine Funktion mysql_escape_string die genau das macht, und die auch in perl DBI angeboten wird. Bei anderen DBs muesste es aehnliches geben.
2) Ich bin kein regelmaessiger C/C++-Programmierer, und kenne deswegen die Standardbibliotheken nicht gut. Gibt es eine gute, komplette Beschreibung der Standardbibliotheken?
info libc -dnh -- Any research done on how to efficiently use computers has been long lost in the mad rush to upgrade systems to do things that aren't needed by people who don't understand what they are really supposed to do with them. -- Graham Reed, in asr
Hallo David, Am Donnerstag, 1. April 2004 23:54 schrieb David Haller:
Welche Datenbank? Programmiersprache? die libmysqlclient / libmysql enthaelt eine Funktion mysql_escape_string die genau das macht, und die auch in perl DBI angeboten wird. Bei anderen DBs muesste es aehnliches geben.
Bisher benutze ich MySql und greife mit den Qt-Klassen darauf zu. Gruss Karl
Hallo, Karl Sinn schrieb:
Hallo,
ich moechte ein Html-Dokument in eine SQL-Datenbank speichern. Dabei stosse ich auf Probleme mit den Anfuehrungszeichen... Die Loesung ist klar, man muss ein "\" davor setzen.
Frage: 1) Gibt es eine Standardfunktion die das uebernimmt? Oder muss ich mir eine selber basteln? [...]
An deiner Stelle wuerde ich mal einen Blick auf Qt werfen, die haben eine ziemlich leistungsfaehige Stringklasse und auch ein Datenbankmodul. Die Dokumentation zu Qt ist hervorragend. Ciao Sebastian
Hallo Sebastian, Am Freitag, 2. April 2004 11:46 schrieb Sebastian Huber:
An deiner Stelle wuerde ich mal einen Blick auf Qt werfen, die haben eine ziemlich leistungsfaehige Stringklasse und auch ein Datenbankmodul. Die Dokumentation zu Qt ist hervorragend.
Hab ich getan. Konnte aber in der QString-Klasse nichts entecken. Im Moment benutze ich QString::replace(...). Gruss Karl
Karl Sinn schrieb:
ich moechte ein Html-Dokument in eine SQL-Datenbank speichern. Dabei stosse ich auf Probleme mit den Anfuehrungszeichen... Die Loesung ist klar, man muss ein "\" davor setzen.
Jede vernünftige Datenbank-API verfügt über Objekte, die sich Prepared Statements, Commands oder ähnlich nennen. Damit sollte sich Dein Problem völlig unabhängig von irgendwelcher datenbankabhängiger (Escaping-)Syntax lösen lassen. Der Ansatz, das selbst zu regeln, ist fehleranfällig (bis hin zu Sicherheitsproblemen) und weniger portabel. -- Gruß, Alex
participants (7)
-
Alexander Veit
-
David Haller
-
Karl Sinn
-
Mathias Uebel
-
Michael Wenger
-
Sebastian Huber
-
Thorsten Haude