DBIで躓く(何度も)

  • 投稿日:
  • by

何回書いても、うっかりやっちまいがちなのが、データベースに突っ込むデータのクォート処理。プレースホルダー(insert into foo (bar, baz) values (?,?) みたいなSQL文字列を作っておいて、my $sth = $dbh->prepare($sql); $sth->execute($bar, $baz); みたいに使う。)を使えば大体よしなにやってくれるんですが、やってくれないものもあります。

Sybaseのtext型データフィールドがその一つで、この型のデータをプレースホルダー経由で渡そうとすると、「こんななんだか判らないデータをプレースホルダーで渡すんじゃないよ!」と怒られます oTL

しょうがないので、こういうのは my $qbar = $dbh->quote($bar); と、クォートさせてから使います。自分用の備忘録です(^^;