簡體   English   中英

用 Perl 連接 MySQL 時出錯

[英]Error connecting MySQL with Perl

我想使用 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。 我已經在環境變量中包含了路徑,但它仍然不起作用。

我找到了解決此錯誤的方法。 首先,我刪除了xampp 文件中的perl 文件夾,然后將草莓文件中的perl 文件夾復制到了xampp 文件夾中

刪除C:\\xampp\\perl 中的 perl 文件夾

然后轉到C:\\strawberry 並將 perl 文件夾復制到 C:\\xampp

然后重新啟動 xampp 並再次運行該程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM