1

Perl CGI を使用して、次のコードで XAMPP の MySQL データベースにアクセスしています。

#!/xampp/perl/bin/perl -w

use DBI;

print "Content-type:text/html\r\n\r\n";

$database = "mydb";
$host = "localhost";
$port = "3306";
$user = "root";
$pw = "";

$dsn = "dbi:mysql:$database:$host:$port";

print "Trying to connect <br />";
$connect = DBI->connect($dsn, $user, $pw, {RaiseError=>1});

if (defined $connect) {
    print "Preparing query <br />";
}

$query = "SELECT * FROM reference WHERE ID = 1742031";
$query_handle = $connect->prepare($query);

$query_handle->execute();

$query_handle->bind_columns(undef, \$pmid, \$popu, \$loc);

while($query_handle->fetch()) {
   print "$pmid, $popu, $loc <br />";
} 

ただし、結果を自分の Web ページに印刷できません。「Preparing Query」行が印刷されないため、データベースに接続できないと思います。しかし、データベースに接続して、mysql コマンド ラインからこのクエリを実行できます。何が問題なのかわかりません。

編集:不足している DBD:mysql モジュールをインストールした後、新しいエラーが表示されます:「ローカルホスト (10061) の MySQL サーバーに接続できません」。ここでの提案に従ってみました: MYSQL - 'localhost' (10061) で MYSQL サーバーに接続できず、すべて問題ないようです。mysqld.exe を実行しており、mysql をサービスとして実行しています。また、mysql コマンド ラインと phpMyAdmin を使用してデータベースに接続できるので、root アカウントしか持っていないため、権限の問題は発生しません。

お知らせ下さい。どんな助けにも感謝します。

4

2 に答える 2

1

このモジュールをインストールするにはどうすればよいですか?

コマンドラインで「cpan」を使用します。

> cpan 
cpan shell -- CPAN exploration and modules installation (v1.960001)
Enter 'h' for help.

cpan[1]> install DBD::mysql

インストールされていない場合は、ダウンロードできます。

https://metacpan.org/pod/DBD::mysql

于 2012-04-24T13:42:30.563 に答える
0

DBI を使用して MySQL データベースに接続するには、次を使用します。

$dsn = "dbi:mysql:$database;host=$host;port=$port";

localhost とポート 3306 はデフォルト値であるため、これらの部分は省略できます。

于 2012-04-25T01:31:13.113 に答える