Perl で、バイナリデータを MySQL に登録する

バイナリデータはアスキーコードのシングルクォート「'」を含んでいる可能性があり、これが 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
Posted on 2005-02-08 by yas |
データベースに画像を格納する with Perl+DBI+MySQL
Trackback from 岩家ぶろぐ: 画像(をはじめとするバイナリデータ,以下,画像)を管理するようなアプリケーション (というほと大げさではありませんが) を設計するときには,情報 (MIM......
Posted by 岩家ぶろぐ (未認証ユーザ) on 2007/03/21(水) 20:16