mysql - 为什么我的 Perl CGI 提示 "Can' tlocate Mysql.pm”?

标签 mysql perl cgi

我有两个文件夹 phpperl。它们分别包含 index.phpindex.pl

我的 Perl 代码如下所示:

#!/usr/bin/perl
use Mysql;

print "Content-type: text/html\n\n"; 
print "<h2>PERL-mySQL Connect</h2>";
print "page info";
$host = "localhost";
$database = "cdcol";
$user = "root";
$password = "";
$db = Mysql->connect($host, $database, $user, $password);
$db->selectdb($database);

当我运行上面的代码时(通过在浏览器中输入http://localhost:88/perl/),我收到以下错误:

无法在 @INC 中找到 Mysql.pm(@INC 包含:C:/xampp/perl/site/lib/C:/xampp/perl/lib C:/xampp/perl/site/lib C:/xampp/apache) 在 C:/xampp/htdocs/perl/index.pl 第 2 行。 BEGIN 失败——编译在 C:/xampp/htdocs/perl/index.pl 第 2 行中止。

而浏览到 http://localhost:88/php/ 则有效。

index.php 有:

<?php
$con = mysql_connect("localhost","root","");
    if($con)
    {
        if(mysql_select_db("cdcol", $con))
        {
            $sql="SELECT Id From products";
            if(mysql_query($sql))
            {
                $result = mysql_query($sql);
                if ($result) ...

最佳答案

您应该使用DBIDBD::mysql 结合使用.

您应该使用标准 CGI 处理模块,例如 CGI::Simple .

use strict; use warnings;
use CGI::Simple;
use DBI;

my $cgi = CGI::Simple->new;
my $dsn = sprintf(
    'DBI:mysql:database=%s;host=%s',
    'cdcol', 'localhost'
);

my $dbh = DBI->connect($dsn, root => '',
    { AutoCommit => 0, RaiseError => 0 }
);

my $status = $dbh ? 'Connected' : 'Failed to connect';

print $cgi->header, <<HTML;
<!DOCTYPE HTML>
<html>
<head><title>Test</title></head>
<body>
<h1>Perl CGI Script</h1>
<p>$status</p>
</body>
</html>
HTML

关于mysql - 为什么我的 Perl CGI 提示 "Can' tlocate Mysql.pm”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2507653/

相关文章:

mysql 得到一个 LIMIT 只计算左连接中的 1 个表

c# - MySQL 连接器在枚举后面附加比实际值小一的值

谁能建议一种方法来跟踪函数的每次调用?

Perl 和 Imagemagick - 找不到 lperl

perl - 了解 newRV_inc 与 newRV_noinc

PHP和MySQL选择框

php - Eloquent hasOne 关系即使存在相关记录也返回 NULL

CGI 无法在 MAMP 下打印

php - 如何获取客户端的本地IP地址和代理服务器

php - 无法在 PHP 文件中包含/执行 CGI 文件