Fehler bei INSERT INTO...

Html

Erfahrenes Mitglied
Hallo, habe ein Problem mit dem Einfügen von neuen Inhalten in meine Datenbank.

Und zwar lese ich den Songnamen meiner mp3s aus und möchte diese in eine Datenbak schreiben. Wie das geht weiß ich, nur kommt es vor das in dem Songnamen ein ' steht und dann bekomme ich eine Fehlermeldung.

Glaube dieses Zeichen ist ja in der Syntax von mysql schon irgendwie vergeben oder so ähnlich war das ja doch!?

Kann man dieses Zeichen irgendwie "ausmaskiern" so dass ich keine Fehlermeldung bekomme aber das Zeichen nicht ersetzt wird sondern der Songname auch nachher dann so in der DB steht.


Hoffe ihr wisst was ich meine... Gibt es dennoch andere Zeiche die zu einem Fehler führen?Kann man die gleich mit ausmaskieren?


Olli
 
Hallo,

MySQL akzeptiert verschiedene Varianten, um anzuzeigen, das ein bestimmtes Zeichen maskiert ist.

Für deinen Fall wäre eine Möglichkeit die Verdopplung des ' :

SQL:
INSERT INTO mp3_names (name) VALUES ('Geht''s noch?');

Eine andere wäre, das Escape-Zeichen (Backslash) davor zu schreiben:
SQL:
INSERT INTO mp3_names (name) VALUES ('Geht\'s noch?');

MySQL bietet in seiner API eine Funktion zum sauberen Maskieren von allen kritischen Zeichen an. Wenn du z.B. mit PHP arbeitest,solltest du folgende Funktionen benutzen:

Sie heissen:

PHP:
mysql_real_escape_string( )  //(PHP > 4.3.0)  bzw.
mysql_escape_string( )   // PHP < 4.3

Markus
 
servus - kannst Du mir auch sagen wie ich es in MS-SQL hin bekomme da gibt es die Funktion
mysql_real_escape_string( ) //(PHP > 4.3.0) bzw.
mysql_escape_string( )

nicht
 
Hallo,

bei MS-SQL fällt mir mangels PHP-Funktion nur ein, die einfachen Anführungszeichen zu verdoppeln (Variante 1 in meinem ersten Post).

Alles weitere Quotes müsste man ausprogrammieren.

Markus
 
hmm

wenn Du mir sagst wie ich das in einer Schleife hinbekommen kann.

Da ich rund 55.000 Datensätze so überprüfen und ändern muss.
 
Zurück