Cách thích hợp để làm sạch dữ liệu để chèn vào cơ sở dữ liệu của bạn là sử dụng trình giữ chỗ cho tất cả các biến được chèn vào chuỗi SQL của bạn. Nói cách khác, KHÔNG BAO GIỜ làm điều này:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";
Thay vào đó, hãy sử dụng ?
trình giữ chỗ:
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
Và sau đó chuyển các biến sẽ được thay thế khi bạn thực hiện truy vấn:
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
Bạn có thể kết hợp các thao tác này với một số phương pháp tiện lợi của DBI; ở trên cũng có thể được viết:
$dbh->do( $sql, undef, $bar, $baz );
Xem tài liệu DBI để biết thêm thông tin.