データベースに挿入するためにデータをサニタイズする適切な方法は、プレースホルダー を使用することです。 SQL文字列に挿入されるすべての変数。言い換えれば、これは絶対に行わないでください:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
代わりに、?
を使用してください プレースホルダー:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
次に、クエリを実行するときに置換する変数を渡します。
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
これらの操作をいくつかのDBIコンビニエンスメソッドと組み合わせることができます。上記も書くことができます:
$dbh->do( $sql, undef, $bar, $baz );
DBIドキュメント をご覧ください 詳細については。