【问题标题】:Error connecting MySQL with Perl将 MySQL 与 Perl 连接时出错
【发布时间】:2016-09-03 14:30:10
【问题描述】:

我想使用 DBI 将 MySQL 与 Perl 连接起来。 问题是每当我尝试使用 CGI 连接到 MySQL 时,都会出现此错误:

Software error:
install_driver(mysql) failed: Can't load 'C:/xampp/perl/vendor/lib/auto/DBD/mysql/mysql.dll' for module DBD::mysql: load_file:%1 is not a valid Win32 application at C:/xampp/perl/lib/DynaLoader.pm line 190.
 at (eval 6) line 3.
Compilation failed in require at (eval 6) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at C:/xampp/htdocs/samples/insert1.cgi line 16.

这是我的代码:

#!"C:\xampp\perl\bin\perl.exe"

use strict;
use warnings;
#include libraries
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
 
print "Content-type: text/html\n\n";
 
## mysql user database name
my $db ="mysql";
## mysql database user name
my $user = "root";
 
## mysql database password
my $pass = "";
 
## user hostname : This should be "localhost" but it can be diffrent too
my $host="localhost";
 
## SQL query
my $query = "show tables";
 
my $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);

	my $sqlQuery  = $dbh->prepare($query)
	or die "Can't prepare $query: $dbh->errstr\n";
 
my $rc = $sqlQuery->execute
or die "can't execute the query: $sqlQuery->errstr";
 #start the HTML
print "Content-type:text/html\r\n\r\n";

print "<HTML>";
print "<HEAD>";
print "<TITLE>GeneMIS</TITLE>";
print "</HEAD>";
print "<BODY bgcolor=white>";
print "<h3>********** My Perl DBI Test ***************</h3>";
print "<p>Here is a list of tables in the MySQL database $db.</p>";
while (my @row= $sqlQuery->fetchrow_array()) {
my $tables = $row[0];
print "$tables\n<br>";
}
 
my $rc = $sqlQuery->finish;


#end the HTML
print "</BODY></HTML>";
exit(0);

我的 DBI 工作正常,文件夹中已经有 mysql.dll。 我已经在环境变量中包含了路径,但它仍然无法正常工作。

【问题讨论】:

    标签: mysql windows perl cgi dbi


    【解决方案1】:

    我找到了解决此错误的方法。 首先我删除了 xampp 文件夹 中的 perl 文件夹 并将 strawberry 文件夹 中的 perl 文件夹 复制到 >xampp 文件夹

    删除C:\xampp\perl中的perl文件夹

    然后转到 C:\strawberry 并将 perl 文件夹复制到 C:\xampp

    然后重新启动 xampp 并再次运行程序。

    【讨论】:

      猜你喜欢
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多