1

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 );
4

1 に答える 1

2

の最初のパラメーターは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;
}
于 2012-08-09T20:54:42.870 に答える