1

DBD::Pgバージョン 2.17.1をインストールしましたが、以下のコードを使用してもエラーが発生します

$res = $conn->prepare($query);
$res = $res->execute();
@tuple = $res->fetchrow_array;

エラー:

Can't call method "fetchrow_array" without a package or object reference at test.pl line 69.

提案してください。

4

2 に答える 2

7

$resのオブジェクトインスタンスではありませんDBI。実行してみてくださいref $res:空の文字列を返すはずです。

以前に準備されたステートメントを実行します。影響を受ける行の数を常に返すUPDATE、DELETE、INSERTステートメントに加えて、executeメソッドはSELECT...INTOテーブルステートメントにも使用できます。

ほとんど$resの場合、「影響を受ける行」の数が含まれています。

$sth   = $conn->prepare($query);
$nrows = $sth->execute();
@tuple = $sth->fetchrow_array;
于 2010-10-25T06:39:35.113 に答える
6

言ってはいけない

$res = $res->execute();

そのステートメントの前の $res は、実行が成功した後に fetchrow_array を呼び出すために使用する必要があるステートメント ハンドルですが、上記はそれを execute() の戻り値に置き換えています。実行に失敗しました。代わりに、必要に応じてその戻り値を別の変数に格納し、fetchrow_array を呼び出す前に成功を確認します。

于 2010-10-25T06:48:24.213 に答える