Den korrekte måde at rense data til indsættelse i din database på er at bruge pladsholdere for alle variabler, der skal indsættes i dine SQL-strenge. Med andre ord, gør ALDRIG dette:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
Brug i stedet ?
pladsholdere:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
Og send derefter de variable, der skal erstattes, når du udfører forespørgslen:
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
Du kan kombinere disse operationer med nogle af DBIs bekvemmelighedsmetoder; ovenstående kan også skrives:
$dbh->do( $sql, undef, $bar, $baz );
Se DBI-dokumenterne for mere information.