バイナリデータはアスキーコードのシングルクォート「'」を含んでいる可能性があり、これが SQL文 (MySQL) のリテラルを表すためにエスケープする必要が出てくる。以下のように  prepare → execute というように2行に分ければ execute の中で prepare の ? を埋め込んでくれるからシングルクォートの問題は考えなくてよくなる。
使用するモジュール
use DBI;
# 要 DBD::MySQL
#!/usr/bin/perl
use DBI;
$TABLE_NAME = 'テーブル名';
$DB = DBI->connect(...);
my $sth = $DB->prepare(qq|INSERT INTO $TABLE_NAME (
                                                   `id`,
                                                   `mimetype`,
                                                   `object`,
                                                   `created`,
                                                   `updated`
                                                  )
                                                  VALUES (?, ?, ?, ?, ?)|
                       );
$sth->execute(
              $id,
              $miemetype,
              $object,
              $NOW,
              $NOW
             );
$DB->disconnect();
1;
    トラックバック URL:
    https://perltips.twinkle.cc/trackback/7