mysql - Perl 数据库连接在 .pm 文件中不起作用

标签 mysql perl soap dbi

在 Perl 中,我使用 DBI 概念连接了数据库。数据库连接和选择表查询在 .pl 文件中工作正常。但是我已经在 .pm 文件中运行了 DBI 数据库连接代码。它不起作用。

请检查代码。

Sample.pl(工作正常)

use DBI;
my $driver = "mysql"; 
    my $database = "marketplace_perl";
    my $dsn = "DBI:$driver:database=$database";
    my $userid = "root";
    my $password = "root";
    my $dbh = DBI->connect($dsn, $userid, $password );
    my $dbh=connect_db();
        my $sth = $dbh->prepare("SELECT UserEmail,UserPassword FROM pj_user where UserEmail=? and UserPassword=?");

        $sth->execute($UserEmail,$UserPassword);

Marketplace.pm(不工作)

package Marketplace;
use DBI;
    sub connect_db {
        my $driver = "mysql"; 
        my $database = "marketplace_perl";
        my $dsn = "DBI:$driver:database=$database";
        my $userid = "root";
        my $password = "root";
        my $dbh = DBI->connect($dsn, $userid, $password );
       return $dbh;
    }

    sub login_marketplace { 

    my $dbh=connect_db();
            my $sth = $dbh->prepare("SELECT UserEmail,UserPassword FROM pj_user where UserEmail=? and UserPassword=?");

            $sth->execute($UserEmail,$UserPassword);
            my $User_count=$sth->rows;
    return $User_count

    }

返回“Failed to access class (Marketplace): Can\'t locate DBI.pm in @INC (you may need to install the DBI module)”错误信息

请告诉我如何解决数据库问题。

最佳答案

在 marketplace.pm 文件中尝试以下代码。

use ENV;
my $PERL5LIB= $ENV{'PERL5LIB'};
 package Marketplace;

BEGIN {
 push(@INC, $PERL5LIB);
};
use DBI;
sub connect_db {
my $driver = "mysql"; 
my $database = "marketplace_perl";
my $dsn = "DBI:$driver:database=$database";
my $userid = "root";
my $password = "root";
my $dbh = DBI->connect($dsn, $userid, $password );
return $dbh;
}

sub login_marketplace { 

my $dbh=connect_db();
my $sth = $dbh->prepare("SELECT UserEmail,UserPassword FROM pj_user where UserEmail=? and UserPassword=?");

$sth->execute($UserEmail,$UserPassword);
my $User_count=$sth->rows;
return $User_count

}

关于mysql - Perl 数据库连接在 .pm 文件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109044/

相关文章:

Perl:对象方法的返回值不触发 "if"语句

android - 复杂的 SOAP 请求

java - 通过 REST 传递 pdf 数据

SQL 建模/查询问题

php - 二维 MySQL 查询?

perl - 每当文本小部件中的光标位置发生变化时自动调用子程序

perl - 如何在 Perl 中访问简单的 SOAP 服务

c# - monodevelop 解析 soap 响应

php - MySql 将按日期分组的数据行转换为动态列

php - 缩短包含查询字符串的 URL