次のようなバインド パラメータの使用には、何らかの (アンチ?) パターンがあるようです。
$dbh->do(
       'select foo from bar where baz > ? and baz < ? + 1',
       undef,
       $var1, $var1
)
つまり、本当に必要なのは$var1、クエリで値を 2 回使用することです。$var1バインド パラメータ リストで 2 回指定しないようにする方法はありますか?
次のようなバインド パラメータの使用には、何らかの (アンチ?) パターンがあるようです。
$dbh->do(
       'select foo from bar where baz > ? and baz < ? + 1',
       undef,
       $var1, $var1
)
つまり、本当に必要なのは$var1、クエリで値を 2 回使用することです。$var1バインド パラメータ リストで 2 回指定しないようにする方法はありますか?
まず、実際の使い方は
$dbh->do(
       'select foo from bar where baz > ? and baz < ? + 1',
       undef,
       $var1, $var1
);
DBD が位置または名前付きのプレースホルダーをサポートしていない限り、
$dbh->do(
       'select foo from bar where baz > $1 and baz < $1 + 1',
       undef,
       $var1
);
使用できますが、2回指定する必要があります
$dbh->do(
       'select foo from bar where baz > ? and baz < ? + 1',
       undef,
       ($var1)x2
);
1 つの方法は、次のように、ドライバーがサポートしている場合、番号付きのプレースホルダーを使用することです。
$dbh->do(
       'select foo from bar where baz > ?1 and baz < ?1 + 1',
       undef,
       $var1
)
やりたいことは、名前付きパラメーターを使用することです。PDOなどの特定のライブラリはこれをサポートしています。