Strawberry Perl / Eclipse / EPIC - 无法在@INC中找到MySql.pm(您可能需要安装MySql模块)

时间:2014-09-16 16:11:00

标签: mysql eclipse perl strawberry-perl

我正在使用带有Strawberry Perl和Eclipse EPIC插件的Eclipse。

我是perl的新手,我正在尝试连接到我设置的mysql数据库。当我尝试使用use MySql;时,我收到错误:

  

无法在@INC中找到MySql.pm(您可能需要安装MySql   模块)(@INC包含:C:/ strawberry / perl / site / lib   C:/ strawberry / perl / vendor / lib C:/ strawberry / perl / lib。)

我正在尝试为来自http://www.tizag.com/perlT/perlmysqlquery.php

的查询做一个简单的教程

做一些谷歌搜索,看起来像草莓perl假设已经安装了DBD :: mysql。

我目前不知所措,也许我需要更新我的路径,或者日食环境,或者我需要使用不同的用途?

我的设置的一些细节:

  • Windows 8操作系统
  • Strawberry perl v5.18.2
  • Eclipse Kepler Service Release 2

2 个答案:

答案 0 :(得分:3)

糟糕!该教程是垃圾。也许有一次它是最先进的Perl,但它已经过时了。模块Mysql.pm在2006年被弃用了!您应该使用DBI代替。

此外,您应该在您编写的每个 Perl脚本的顶部添加语句use strict;use warnings;。如果您发现示例脚本中没有包含这些指令的教程,请立即停止阅读并查找新教程。 *

以下显示如何使用DBI模块连接到MySQL数据库并打印出SELECT语句的结果。有关详细信息,请参阅documentation

use strict;
use warnings;
use 5.010;

use DBI;

my $dsn = "DBI:mysql:test;localhost";
my $user = 'user';
my $pass = 'pass';

my $dbh = DBI->connect($dsn, $user, $pass, {
    PrintError => 0,
    RaiseError => 1
});

my $statement = <<'SQL';
    SELECT foo
    FROM bar
SQL

my $sth = $dbh->prepare($statement);
$sth->execute;

while (my $row = $sth->fetch) {
    say "@$row";
}

$dbh->disconnect;

*短代码片段不需要这些,但如果示例脚本包含shebang行(例如#!/usr/bin/perl),则最好还有strictwarnings

答案 1 :(得分:0)

这是基于ThisSuitIsBlackNot的建议给我的摘要。他的建议是正确的,我所做的例子不是使用DBD,而是弃用了代码。阅读他提供的链接让我深入了解了cpan,还有几个googles给了我一个cpan的例子,让我连接到我的MySQL数据库,没有任何问题。以下是其他人遇到类似问题的示例链接:http://search.cpan.org/~capttofu/DBD-mysql-4.028/lib/DBD/mysql.pm