为什么在尝试使用Perl';s DBD::mysql?

为什么在尝试使用Perl';s DBD::mysql?,mysql,perl,dbi,dbd,Mysql,Perl,Dbi,Dbd,我正在尝试使用Perl将数据写入MySQL数据库。但是,当我运行脚本时,出现以下错误: 无法在LargeLDAPSearch.pl第10行的@INC(@INC包含:C:/Perl/site/lib C:/Perl/lib.)中找到模块DBD::mysql的可加载对象。 我有这些“use”语句和下面的代码。这只是一个小摘录,因为在我尝试DB连接之前,脚本已经工作了: use DBD::mysql; use strict; use warnings; my $query_handle; my ($

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

无法在LargeLDAPSearch.pl第10行的@INC(@INC包含:C:/Perl/site/lib C:/Perl/lib.)中找到模块DBD::mysql的可加载对象。

我有这些“use”语句和下面的代码。这只是一个小摘录,因为在我尝试DB连接之前,脚本已经工作了:

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子文件夹,还有一个带有 DBI下的MySQL子文件夹
/lib/DBD/mysql/
&`/lib/DBI/DBD/mysql/``


这可能是错误,福德勒在两个地方。我访问了CPAN网站,并尝试了手动isntall步骤,我收到一个关于SQLLite的DBI安装错误。

不要
使用DBD::mysql
。只需
使用DBI
。它将自动加载您的MySQL驱动程序。

不要
使用DBD::MySQL
。只需
使用DBI
。它将自动加载您的MySQL驱动程序。

使用安装
DBI
DBD::MySQL

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


使用安装
DBI
DBD::mysql

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


在我发表那篇文章之前,我也试过了,但我得到了一个错误:
code安装驱动程序(mysql)失败:在(eval 12)第3行的@INC(@INC包含:C:/Perl/site/lib C:/Perl/lib.)中找不到模块DBD::mysql的可加载对象。在(eval 12)第3行第2行的require中编译失败。也许DBD::mysql所需的模块尚未完全安装
也许我没有正确安装。不知道为什么我在这个问题上得到了-1的答案。我在写那篇文章之前也试过了,但我得到了这个错误:
code安装_驱动程序(mysql)失败:无法在@INC(@INC contains:C:/Perl/site/lib C:/Perl/lib.)的(eval 12)第3行找到模块DBD::mysql的可加载对象。在(eval 12)第3行第2行的require中编译失败。也许DBD::mysql所需的模块尚未完全安装
也许我没有正确安装。我不知道为什么我在这个问题上得了-1分。我给你一个“放弃”的分数,并检查这个答案。但是由于某些原因,我的活动Perl包管理器没有加载。我重新启动了我的电脑,但仍然一无所获。我将卸载它,重新安装,然后通过CPAN重新安装插件
ppm
使用SQLite数据库保存已安装模块的信息。不知何故,它加载的SQLite DLL的版本低于发行版DBD::SQLite的构建所依据的版本。从CPAN或其他供应商处下载1.35版?我将向您提供一个放弃并检查此答案。但是由于某些原因,我的活动Perl包管理器没有加载。我重新启动了我的电脑,但仍然一无所获。我将卸载它,重新安装,然后通过CPAN重新安装插件
ppm
使用SQLite数据库保存已安装模块的信息。不知何故,它加载的SQLite DLL版本低于发行版DBD::SQLite的构建版本。请从CPAN或其他供应商下载1.35版?您是否同时安装了
DBI
DBD::mysql
?如果是,你是怎么做到的?此错误听起来像是未安装或未正确安装的
DBD::mysql
。当我运行MakeFile.pl时,我得到了此
代码,看起来您的路径上没有C编译器,因此您将无法编译C或XS扩展模块。您可以使用Perl包管理器从MinGW包安装GCC,方法是运行:ppm install MinGW检查您的工具包是否完整。。。为数据编写Makefile看起来不错::ShowTable编写MYMETA.yml和MYMETA.json按任意键继续
runcmd安装DBI err:
code-ppm安装DBI-ppm安装失败:安装驱动程序(SQLite)失败:DBD::SQLite对象版本1.33与引导参数1.35不匹配
不要将这些重要信息填入注释中。相反,编辑,更新,重写你的问题和相关的位。您似乎已经破坏了ActivePerl安装,它使用SQLite数据库保存已安装模块的信息。不知怎的,它加载了一个SQLite DLL,这个DLL的版本比构建发行版的
DBD::SQLite
所依据的版本要低。我也遇到了同样的问题。但是ActiveState perl似乎可以与安装了它的DBDLite一起工作。Mine可以使用或不使用YUM安装perl-DBD-MySQL。也可以在脚本中使用和不使用
usedbd::mysql
。我确实在运行Perl脚本的机器上安装了MySQL(在遇到错误之后)。不确定MySQL是否提供了任何库文件等帮助。您是否同时安装了
DBI
DBD::MySQL
?如果是,你是怎么做到的?此错误听起来像是未安装或未正确安装的
DBD::mysql
。当我运行MakeFile.pl时,我得到了这段
代码,看起来您的路径上没有C编译器,因此无法编译
my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
                  $user, $password, {RaiseError => 1});