1

PostgreSQLでのUPDATEステートメント(Perlからおよびを介しDBIDBD::Pg)の場合、次のような値をバインドします。

my $sql = 'UPDATE mytable SET foo = % WHERE id = 42';
my $foo_value = 23;
$dbh->do($sql, {}, $foo_value);

do()これにより、行に次のエラーが発生します。

DBD::Pg::db do failed: called with 1 bind variable when 0 are needed at...

プレースホルダーの他の構文を試し$1まし?た。両方とも失敗します

DBD::Pg::db do failed: ERROR:  invalid input syntax for type numeric: "" at...

正しい構文は何ですか?

4

1 に答える 1

4

文字は?正しいプレースホルダーです。

my $sql = 'UPDATE mytable SET foo = ? WHERE id = 42';
my $foo_value = 23;
$dbh->do($sql, undef, $foo_value);
于 2012-07-31T13:41:17.077 に答える