4

データベースに接続してSQLクエリを実行しようとするスクリプトが1つあります。私のコードはこのようなものです

use DBI;
$dbh = DBI->connect('Databasename', 'uid','pswd');
my $sth = $dbh->prepare ("select * from Tablename");
$sth->execute();
my @row_ary = $sth->hetshrow_array;
foreach $item (@row_ary)
{
print "$item\n";
}

このコードを実行しようとすると、次のエラー メッセージが表示されます

Can't connect to data source 'Databasename' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at demo.pl line 2

このメッセージが表示される理由を教えてください。SQL クエリを実行するために必要な構成は何ですか。

ありがとう

4

1 に答える 1

8

DBI は、複数のデータベース サーバー (MySQL、Sybase、Oracle など) をサポートするという点で柔軟性があります。DBI->connect に渡す最初のパラメータは、データベース名ではなく、DSN (データ ソース名) です。DSN の形式は次のとおりです。

dbi:Driver:databasename

データベースが MySQL の場合はmysql、ドライバーに次を使用します。

dbi:mysql:databasename

DBI の詳細については、こちらをご覧ください。

于 2013-03-28T05:10:06.297 に答える