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 アカウントしか持っていないため、権限の問題は発生しません。
お知らせ下さい。どんな助けにも感謝します。