当我尝试使用Perl的DBD :: mysql时,为什么会出错?

时间:2012-04-09 15:48:58

标签: mysql perl dbi dbd

我正在尝试使用Perl将数据写入MySQL数据库。但是,当我运行我的脚本时,我收到以下错误:

Can't locate loadable object for module DBD::mysql in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at LargeLDAPSearch.pl line 10.

我确实有这些“使用”语句和以下代码。这只是一个小的摘录,因为在我尝试数据库连接之前脚本工作了:

use DBD::mysql;
use strict;
use warnings;
my $query_handle;

my ($platform,$database,$host,$port,$db_user,$pw) = ("mysql","results","localhost","3306","root","mysql123");

my $dsn = "dbi:$platform:$database:$host:$port";

my $connect = DBI->connect($dsn,$db_user,$pw) || die "Could not connect to database";

my $query_insert = "INSERT INTO " . $dbname . "(uid,status,lstpwdset,reset) VALUES (" . $strSAMA . "," . $strAcctControl . "," . $pwLS . "," . $reset . ")";

$query_handle = $connect->prepare($query_insert);
$query_handle->execute();

我已经进入了我本地的Perl文件夹,并搜索了lib文件 目录。在/lib/子文件夹中,我有两个文件夹,DBI和DBD 子文件夹,我在DBD中有MySQL子文件夹,也有一个DBD子文件夹 DBI下的MySQL子文件夹。 /lib/DBD/mysql/& `/ LIB / DBI / DBD / MySQL的/``

这可能是错误,两个地方的fodlers。我去了CPAN网站,尝试了手册isntall步骤,我收到了关于SQLLite的DBI安装错误。

2 个答案:

答案 0 :(得分:5)

使用

安装DBIDBD::mysql
C:\> ppm install DBI
C:\> ppm install DBD::mysql

您似乎正在使用ActivePerl,因此请使用它为您提供的设施。

DBD::mysql附带documentation

  

从perl你用语句

激活界面
use DBI;
  

之后,您可以连接到多个MySQL数据库服务器并发送   通过简单的面向对象的接口对其中任何一个进行多次查询。   有两种类型的对象:数据库句柄和语句   处理。 Perl返回一个连接方法的数据库句柄,如下所示:

my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
                  $user, $password, {RaiseError => 1});

答案 1 :(得分:3)

不要use DBD::mysql。只做use DBI。它会自动加载你的MySQL驱动程序。