Я использую Perl CGI для доступа к базе данных MySQL в XAMPP со следующим кодом:
#!/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 я получаю новую ошибку: «Не удается подключиться к серверу MySQL на локальном хосте (10061)». Я пробовал следовать предложениям здесь: MYSQL - не могу подключиться к серверу MYSQL на localhost (10061) и вроде все в порядке. У меня запущен mysqld.exe, и я использую mysql как службу. Кроме того, я могу подключиться к базе данных через командную строку mysql, а также через phpMyAdmin, поэтому проблем с привилегиями быть не должно, поскольку у меня есть только учетная запись root.
Пожалуйста, порекомендуйте. Буду благодарен за любую помощь.