1

Perl DBI を使用して、sqlite3 データベースに対して select ステートメントを実行しようとしています。コードは次のとおりです。

my $dbh = DBI->connect( "DBI:SQLite:dbname=./GenBankData.db" , "" , "" , { PrintError => 0 , RaiseError => 1 } );
    my $Sql = 'select AccessionQueryResultID, AccessionNumber, Definition from AccessionQueryResult';
    my $sth = $dbh->prepare( $Sql )  or die "Couldn't prepare statement: " . $dbh->errstr;;
    $sth->execute( $Sql) or die "Couldn't execute statement: " . $dbh->errstr;

しかし、次のエラーが発生します: DBD::SQLite::st execute failed: called with 1 bind variables when 0 are needed at /home/mysite.cgi line 33

データベースとテーブルが存在することを確認しました。sqlite3 コマンド ラインを使用してクエリを実行すると、同じクエリが正常に機能します。

ありがとう

4

2 に答える 2

1

間違ったパラメーターで実行コマンドを呼び出しています。前の行で SQL ステートメントを既にセットアップしているため、再度行う必要はありません。代わりにこれを試してください:

$sth->execute() or die "Couldn't execute statement: " . $dbh->errstr;
于 2013-05-05T03:15:09.077 に答える