我使用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帐户。请指教。我将不胜感激任何帮助。
答案 0 :(得分:1)
如何安装此模块?
在命令行中使用“cpan”:
> cpan
cpan shell -- CPAN exploration and modules installation (v1.960001)
Enter 'h' for help.
cpan[1]> install DBD::mysql
如果没有安装,可以下载:
答案 1 :(得分:0)
要使用DBI连接到MySQL数据库,请使用
$dsn = "dbi:mysql:$database;host=$host;port=$port";
localhost和端口3306是默认值,因此您可以将这些部分保留。