似乎有一個(防?)模式的東西在使用這樣的綁定參數:相同的值可以在查詢中綁定多次嗎?
$dbh->do(
'select foo from bar where baz > ? and baz < ? + 1',
undef,
$var1, $var1
)
即什麼是真正想要的是在查詢中使用的$var1
值的兩倍。有沒有辦法避免在綁定參數列表中兩次指定$var1
?
似乎有一個(防?)模式的東西在使用這樣的綁定參數:相同的值可以在查詢中綁定多次嗎?
$dbh->do(
'select foo from bar where baz > ? and baz < ? + 1',
undef,
$var1, $var1
)
即什麼是真正想要的是在查詢中使用的$var1
值的兩倍。有沒有辦法避免在綁定參數列表中兩次指定$var1
?
首先,使用實際上是
$dbh->do(
'select foo from bar where baz > ? and baz < ? + 1',
undef,
$var1, $var1
);
除非你DBD支持positional or named placeholders,
$dbh->do(
'select foo from bar where baz > $1 and baz < $1 + 1',
undef,
$var1
);
你需要指定兩次吧,雖然你可以使用
$dbh->do(
'select foo from bar where baz > ? and baz < ? + 1',
undef,
($var1)x2
);
一種方法可能是使用編號佔位符,如果您的驅動程序支持它們,如:
$dbh->do(
'select foo from bar where baz > ?1 and baz < ?1 + 1',
undef,
$var1
)
你想要做的是使用命名參數。某些圖書館,如PDO support this。