【发布时间】:2017-10-26 19:24:17
【问题描述】:
您好,我正在尝试使用以下 perl 脚本连接到 mysql 数据库:
#!/usr/bin/perl -w
use strict;
use DBI;
my $dbh = DBI->connect(
"dbi:mysql:dbname=MYDATABASENAME",
"MYUSERNAME",
"MYPASSWORD",
{ RaiseError => 1 },
) or die $DBI::errstr;
my $sth = $dbh->prepare( "SELECT * FROM classes" );
$sth->execute();
my ($class_id, $class_name, $class_number) = $sth->fetchrow();
print "$class_id $class_name $class_number\n";
my $fields = $sth->{NUM_OF_FIELDS};
print "We have selected $fields field(s)\n";
my $rows = $sth->rows();
print "We have selected $rows row(s)\n";
$sth->finish();
$dbh->disconnect();
现在我只是得到一个空白屏幕,我无法弄清楚为什么我至少没有收到错误消息。我花了 20 多个小时试图弄清楚这一点,这就是为什么我希望有人能看到我做错了什么。提前致谢。
【问题讨论】:
-
您是说,当您运行它时,它只是挂起,您必须按 Ctrl-C 才能恢复提示?
-
对不起,我没有从命令行运行它。我将它保存在我的虚拟主机帐户的 cgi-bin 文件夹中。当我运行脚本时,空白屏幕在浏览器中。
-
另外,这可能是一个愚蠢的问题,但我只是想确保...我有很多将 mysql 与 php 结合使用的经验,但我是 perl 新手。如果我使用 php 脚本连接到数据库,用户名和密码字段与我将使用的用户名和密码相同吗?
-
您没有指定主机。
my $dbh = DBI->connect("dbi:mysql:database=$database;host=$DBhost;port=$port",$username,$password,其中$DBhost可能是远程的或localhost