Właściwym sposobem oczyszczenia danych do wstawienia do bazy danych jest użycie znaczników zastępczych aby wszystkie zmienne zostały wstawione do ciągów SQL. Innymi słowy, NIGDY tego nie rób:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
Zamiast tego użyj ?
symbole zastępcze:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
A następnie przekaż zmienne, które mają zostać zastąpione podczas wykonywania zapytania:
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
Możesz połączyć te operacje z niektórymi wygodnymi metodami DBI; powyższe można również zapisać:
$dbh->do( $sql, undef, $bar, $baz );
Zobacz dokumentację DBI aby uzyskać więcej informacji.