Det korrekta sättet att rensa data för att infogas i din databas är att använda platshållare för att alla variabler ska infogas i dina SQL-strängar. Med andra ord, gör ALDRIG detta:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
Använd istället ?
platshållare:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
Och skicka sedan variablerna som ska ersättas när du kör frågan:
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
Du kan kombinera dessa operationer med några av DBIs bekvämlighetsmetoder; ovanstående kan också skrivas:
$dbh->do( $sql, undef, $bar, $baz );
Se DBI-dokumenten för mer information.