Perl-Problem: Hochkomma in eine MySQL Db reinkriegen
Posted: 2003-03-06 19:40
Hallo!
Ich möchte Daten aus einer Textdatei in eine MySQL DB hochladen. Nun hängt sich das Ding aber auf, wenn in einem Feld ein Hochkoma ' drinsteht, da MySQL dies dann als Feldtrennung versteht. Der SQL-Befehl sieht so aus:
my $query = $db->prepare("INSERT into DB SET ID = '$datenfeld[0]', Firma = '$datenfeld[1]'");
Nun habe ich versucht, in dem String die Hochkommas durch den entsprechenden HTML-Code zu ersetzen, was dann auch funktioniert:
$_ =~ s/'/′/g;
Doch SQL scheint dieses Zeichen dann trotzdem zu erkennen und beendet an dieser Stelle das Einlesen der Textzeile. Wie kann ich MySQL klarmachen, dass er solche Zeichen bitte als HTML-Code einlesen soll und nicht da aufhören soll? Wenn ich die Variable $datenfeld[X] ohne Hochkommas benutze, geht es nicht und mit Anführungszeichen landen die Variablennamen in der DB, was natürlich auch nicht gewünscht ist.
Wer hat eine Idee? In PHP kann man ja HTML-Code als solchen markieren und dann geht er auch rein, aber ich will das mit Perl lösen.
Merci!
Ich möchte Daten aus einer Textdatei in eine MySQL DB hochladen. Nun hängt sich das Ding aber auf, wenn in einem Feld ein Hochkoma ' drinsteht, da MySQL dies dann als Feldtrennung versteht. Der SQL-Befehl sieht so aus:
my $query = $db->prepare("INSERT into DB SET ID = '$datenfeld[0]', Firma = '$datenfeld[1]'");
Nun habe ich versucht, in dem String die Hochkommas durch den entsprechenden HTML-Code zu ersetzen, was dann auch funktioniert:
$_ =~ s/'/′/g;
Doch SQL scheint dieses Zeichen dann trotzdem zu erkennen und beendet an dieser Stelle das Einlesen der Textzeile. Wie kann ich MySQL klarmachen, dass er solche Zeichen bitte als HTML-Code einlesen soll und nicht da aufhören soll? Wenn ich die Variable $datenfeld[X] ohne Hochkommas benutze, geht es nicht und mit Anführungszeichen landen die Variablennamen in der DB, was natürlich auch nicht gewünscht ist.
Wer hat eine Idee? In PHP kann man ja HTML-Code als solchen markieren und dann geht er auch rein, aber ich will das mit Perl lösen.
Merci!