Alexander (HH): Probleme beim Escapen von Parametern

Beitrag lesen

Moin Moin!

Wenn ich die Single Quotes folgendermaßen escape, funktioniert es:

... values (''$1'' ...

Wie gesagt, die sauberere Variante wäre, DBI mit Platzhaltern zu benutzen. Dein Mechanismus fällt ÜBELST auf die Schnauze, sobald $1 Single Quotes und ggf. Backslashes enthält.

Ansatz (ungeprüft):

  
#!/usr/bin/perl -w  
  
# Aufruf: script.pl < daten.txt  
  
use strict;  
use DBI;  
  
my $dbh=DBI->connect('dbi:Pg:DATENBANK','USER','PASSWORD',{ RaiseError => 1 });  
### 1 ###  
my $sth=$dbh->prepare('insert into FOOBAR (FOO,BAR,BAZ) values (?,?,?)'); #  
while (<>) {  
    chomp;  
    /^(\w+)\t(w+)\t(w+)$/ or next; # ANPASSEN!  
    $sth->execute($1,$2,$3);  
}  
$sth->finish();  
$dbh->disconnect();  

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".