Perl-MySQL问题
我是一名完全的Perl noob,我是一名PHP程序员,目前正在努力学习Perl。Perl-MySQL问题,mysql,perl,Mysql,Perl,我是一名完全的Perl noob,我是一名PHP程序员,目前正在努力学习Perl。 我在位于c:\Xampp- 我有这个代码,它给了我一个错误 use strict; use warnings; use CGI::Simple; use DBI; $host = "localhost"; $database = "store"; $tablename = "inventory"; $user = "root"; $pw = ""; $connect = Mysql->connect($
我在位于c:\Xampp-
我有这个代码,它给了我一个错误
use strict; use warnings;
use CGI::Simple;
use DBI;
$host = "localhost";
$database = "store";
$tablename = "inventory";
$user = "root";
$pw = "";
$connect = Mysql->connect($host, $database, $user, $pw);
@databases = $connect->listdbs;
foreach $database (@databases) {
print "$database<br />";
}
使用严格;使用警告;
使用CGI::Simple;
使用DBI;
$host=“localhost”;
$database=“store”;
$tablename=“库存”;
$user=“root”;
$pw=“”;
$connect=Mysql->connect($host、$database、$user、$pw);
@数据库=$connect->listdbs;
foreach$数据库(@databases){
打印“$database
”;
}
错误:
在C:/xampp/htdocs/testing/learn_perl/index.pl第5行的@INC(@INC包含:C:/xampp/perl/lib/C:/xampp/perl/lib C:/xampp/perl/site/lib C:/xampp/site/lib C:/xampp/xampp/apache)中找不到CGI/Simple.pm。BEGIN失败--编译在C:/xampp/htdocs/testing/learn\u perl/index.pl第5行中止
您应该从CPAN安装CGI::Simple模块 从CPAN安装模块的一种简单方法是:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
之后,您可以使用以下简单工具安装模块:
cpanm Some::Module
e、 g
您应该从CPAN安装CGI::Simple模块 从CPAN安装模块的一种简单方法是:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
之后,您可以使用以下简单工具安装模块:
cpanm Some::Module
e、 g
复制粘贴自:
每个活动状态的perl安装都提供了一个新的选项,至少我是通过perl Vesion 5.8.X获得的。您所要做的就是按照以下步骤进行操作
如ppm>类型安装模块名称
安装CGI::Simple
如ppm>类型安装模块名称
安装CGI::Simple
ppm实用程序将为您安装perl模块。对于您向我们展示的任何代码,您都不需要CGI::Simple。如果您计划稍后将程序转换为CGI应用程序,那么我建议您使用CGI而不是CGI::Simple。CGI最明显的优点之一是,它包含在标准Perl安装中,因此您无需自己安装
但那只是你问题的开始。看起来你找到了一个糟糕的教程。使用链接到的资源,您可能会做得更好。对于您向我们展示的任何代码,您都不需要CGI::Simple。如果您计划稍后将程序转换为CGI应用程序,那么我建议您使用CGI而不是CGI::Simple。CGI最明显的优点之一是,它包含在标准Perl安装中,因此您无需自己安装
但那只是你问题的开始。看起来你找到了一个糟糕的教程。使用链接到的资源,您可能会做得更好。哎哟,那个教程看起来不太好。试试这个,让我解释一下它的作用:
#!c:\strawberry\perl\bin\perl.exe -T
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
my $host = 'localhost';
my $database = 'store';
my $tablename = 'inventory';
my $user = 'root';
my $pw = '';
my $dbh = DBI->connect("DBI:mysql:$database;host=$host",
$user, $pw, { RaiseError => 1 })
or die "Unable to open database: $DBI::errstr";
my $stmt = $dbh->prepare('SHOW DATABASES');
$stmt->execute();
my $databases = $stmt->fetchall_arrayref();
$dbh->disconnect();
my $page = new CGI;
print $page->header();
print $page->start_html();
foreach $database (@$databases) {
print $database->[0] . '<br />';
}
print $page->end_html();
#!c:\草莓\perl\bin\perl.exe-T
严格使用;
使用警告;
使用CGI;
使用CGI::Carp qw(fatalsToBrowser);
使用DBI;
my$host='localhost';
我的$database='store';
我的$tablename='存货';
我的$user='root';
我的$pw='';
my$dbh=DBI->connect(“DBI:mysql:$database;host=$host”,
$user,$pw,{RaiseError=>1})
或者“无法打开数据库:$DBI::errstr”;
my$stmt=$dbh->prepare('SHOW DATABASES');
$stmt->execute();
my$databases=$stmt->fetchall_arrayref();
$dbh->disconnect();
my$page=新的CGI;
打印$page->header();
打印$page->start_html();
foreach$数据库(@$数据库){
打印$database->[0]。
;
}
打印$page->end_html();
第一行是一个标准的脚本头,让web服务器知道运行哪个二进制文件。在本例中,我添加了“-T”标志以在Perl中启用。这将有助于安全
您添加了“使用严格”和“使用警告”,非常好。开始练习将这些放在脚本的顶部
接下来的三个use语句是将包含在此脚本中的库。在本例中,我用于生成HTML、将错误消息输出到浏览器(这有助于调试)以及使用数据库。如果您曾经收到您发布的错误消息(“找不到…”),则表示您正在尝试使用尚未从CPAN安装的库。您可以查看以获取有关安装库的帮助
接下来我设置局部变量。因为我已经在上面打开了严格模式,所以每个新变量的前缀必须是'my'或'our',这取决于我想要的范围
现在,我使用DBI模块连接到数据库。这里我使用的是mysql库,所以请确保安装了DBD::mysql。我还传递了一个名为“RaiseError”的可选参数;这将确保任何SQL错误都会导致错误。如果我没有打开它,我将不得不检查我所做的任何SQL调用的返回变量。如果连接有任何问题,我还决定使用“die”操作终止脚本。您可能希望将其更改为生产重定向;“or”关键字之后的任何内容都将在出现错误时执行
然后执行实际的SQL操作。使用我的数据库句柄,我准备一条语句并执行它。然后,我将所有结果检索到一个文档中,以供以后使用。然后我断开了与数据库的连接
最后一个块实际上打印出HTML。我创建一个新的CGI对象,然后打印出标题。我启动HTML,然后打印出找到的每个数据库。在foreach语句中,我需要让Perl知道$d