我想在 selectrow/selectall 函数调用期间绑定参数类型。
是否可以更改以下内容:
$sth = $dbh->prepare($sql);
$sth->bind_param(1, undef, {pg_type => DBD::Pg::PG_BYTEA});
$sth->execute($byteavalue);
到一个 selectrow 语句:
$dbh->selectrow_arrayref( $sql, undef, $byteavalue );
的第一个参数selectrow_*
可以是语句句柄,因此您可以使用:
$sth = $dbh->prepare($sql)
and $sth->bind_param(1, undef, { pg_type => DBD::Pg::PG_BYTEA })
and $dbh->selectrow_arrayref($sth, undef, $byteavalue);
否则,您必须创建自己的selectrow_arrayref
. 现有版本是:
sub selectrow_arrayref {
my ($dbh, $stmt, $attr, @bind) = @_;
my $sth = ((ref $stmt) ? $stmt : $dbh->prepare($stmt, $attr))
or return;
$sth->execute(@bind)
or return;
my $row = $sth->fetchrow_arrayref()
and $sth->finish;
return $row;
}