ような関数のオーバーロードができる言語では、プリペアードステートメントのプレースホルダが型をもつ必要はありません。ように数値型と文字列型の区別がない言語で最善を期そうとすると、変数をバインドするタイミングで型を意識してコードを書かなければならず面倒です。つぶやいたネタなのですが、SQLステートメントをキーとしてキャッシュにデータを保存したいといった事情もあって、実際に作ってしまいました。search.cpan.orgDBI-Printf-0.01.tar.gz使い方は至って単純。$dbh->errstr;これで、自然な形で型つきのプリペアードステートメントを実現することができました。重複があったら教えていただけると助かります)。構文解析結果や実行プラン等をサーバ側で使い回すことで、より効率的な処理が可能になるためです。以降では、サーバサイドプリペアードステートメントに対応しています。サーバサイドプリペアードステートメントには様々な制限があり、なかなかパフォーマンスを稼ぐのが難しそうです。個人的には、ステートメントキャッシュがないというあたりで使う気が失せました。参考になると思います。置いてみましたので、興味ある方はぜひ勝手に改良していただければと思います。ネームスペースへ移動しました。ダウンロード可能です。23:04コメントこんにちは。プリペアードステートメントというと,(お書きになっているように)構文解析済みSQLステートメントオブジェクトを一度作っておけば,それに何回も違うparametersでexecuteできて速いよ,というイメージがあるので,これをプリペアードステートメントと呼ぶことに抵抗感があるのですが。構文解析をしろということではないのですが,このアプローチだとパラメータを変える度に都度都度SQLを発行するわけですよね。ソースをちら見しただけなので誤読があったらごめんなさい。16:23コメントありがとうございます。このアプローチだとパラメータを変える度に都度都度SQLを発行するわけですよね。プリペアードステートメントのラッパーのようにすることでサーバーサイドプリペアードステートメントに対応させることもできるとは思いますが、本文に書いたような事情により、自分で対応作業をする気はありません。方式だったと思います)。