可能重复:
数组是否有SQL参数绑定?
我想知道是否还有将bind_param与SQL IN语句一起使用.根据perl文档,不能使用bind_param_array.有没有人遇到过同样的情况?
不,你不能轻易做到这一点.一种选择是使用$dbh->quote,例如.
my @values = (1,2,3,4);
my $sql = "SELECT * from my_table WHERE ID IN (";
$sql .= join(',', map { $dbh->quote($_) } @values)
$sql .= ')';
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建必要的占位符并将数组作为绑定参数传递,例如.
my @values = (1,2,3,4);
my $sql = "SELECT * from my_table WHERE ID IN (";
$sql .= join(',', map { '?' } @values);
$sql .= ')';
my $sth = $dbh->prepare($sql);
$sth->execute(@values);
Run Code Online (Sandbox Code Playgroud)
两者都不是特别漂亮.