使用Perl CGI和XAMPP连接到MySQL数据库

时间:2012-04-24 13:37:29

标签: mysql perl cgi xampp

我使用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 />";
} 

但是我无法将结果打印到我的网页。我觉得我是 因为“准备查询”而无法连接到数据库 线未打印。但我可以连接到数据库并执行 来自mysql命令行的这个查询。我不知道问题是什么。

编辑:安装丢失的DBD:mysql模块后,我收到一个新错误:“不能 连接到localhost上的MySQL服务器(10061)“。我试着按照这里的建议: MYSQL - Cant connect to MYSQL server on 'localhost' (10061) 一切似乎都很好。我运行了mysqld.exe,我正在运行mysql作为服务。 另外,我可以通过mysql命令行以及phpMyAdmin连接到数据库, 所以应该没有特权问题,因为我只有一个root帐户。

请指教。我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

要使用DBI连接到MySQL数据库,请使用

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

localhost和端口3306是默认值,因此您可以将这些部分保留。