MySQL+DBI/DBD+Apatchのログについて川合孝典です。yoshiと申します。ありますので、質問させてください。使ったほうがよいでしょう。strictは変数などの宣言を求めるということになります。「Perlの常識レベル」かといえば、ラクダ本(プログラミングPerl)で「保守する人の効率をあげるためのヒント」などで記述されているということがあります。strictしていれば一発でコーディングミスというケースがあまりにも頻発していたことがあります。「DBIを使う」=「ワンライナーじゃない」ということではある意味、必然だと思っています。recommendになってからは、その手のしょーもない質問は減ったように感じています。これはかなり重要な欠点ではないでしょうか?なぜプレースホルダがあるかといえば最大の理由はOracleがプレースホルダをサポートしているということがあるだろうと思っています。Oracleではプレースホルダの部分を置き換えたSQLを発行するのではなく、prepareにより一旦コンパイルしたSQLに対してバインド変数を指定してexecuteするというのは当然の手法といえます。最近のPostgreSQLでもプレースホルダ(あるいはprepareを有効にする)がAPIレベルでサポートされています。APIでプレースホルダをサポートしていなくても、prepareの時点でどこにプレースホルダがあるのかをチェックしておけば処理効率はあがります。埋め込むだけでなく、エスケープをしながら埋め込んでもらえるという利点もあります。変数の値にシングルクォートが入っている場合、単純にSQLに埋め込むというわけにはいかないでしょう。(そのためにquoteメソッドがあるわけなんですが)またデバッグについては、traceを設定すれば実際に投げているSQLはわかるはずです。ShowErrorStatementプロパティを設定すればエラーのさい、組みたてられたSQLが見えるはずです。