我正在使用 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 模块后,我收到一个新错误:“无法连接到本地主机 (10061) 上的 MySQL 服务器”。我尝试按照这里的建议进行操作: MYSQL - Cant connect to MYSQL server on 'localhost' (10061) 并且一切似乎都很好。我正在运行 mysqld.exe,并且正在将 mysql 作为服务运行。另外,我可以通过 mysql 命令行以及 phpMyAdmin 连接到数据库,所以应该没有权限问题,因为我只有一个 root 帐户。
请指教。我将不胜感激任何帮助。