我第一次使用DBI(并且不久就开始使用Perl [2周])而且我似乎无法从数据库中获得任何结果。这就是我所拥有的:
if( defined( $get{findAllPages} ) && defined( $post{ki} ) ){
my ($database, $hostname, $port, $password, $user );
$database = "#########";
$hostname = "localhost";
$password = "#########";
$user = "###########";
my $KI = $post{ki};
# connect to the database
my $dsn = "DBI:mysql:database=$database;host=$hostname;";
my $dbh = DBI->connect($dsn, $user, $password);
my $sth = $dbh->prepare("SELECT * FROM accounts WHERE KI = '" . $dbh->quote($KI) . "' ") or die "Could not select from table";
$sth->execute();
if( $sth->rows != 0 ) {
my $ref = $sth->fetchrow_hashref();
my $domain = $ref->{website};
my $DB_username = $ref->{db_name};
my $DB_password = $ref->{db_pass};
$sth->finish();
$dbh->disconnect();
print "domian: " . $domain . "<br />\n";
chomp(my $url = trim($domain));
目前检查KI
是否正确,然后检查行数量是否正常。我无法工作的位是从数组中返回值;
my $ref = $sth->fetchrow_hashref();
my $domain = $ref->{website};
my $DB_username = $ref->{db_name};
my $DB_password = $ref->{db_pass};
如果有人能告诉我出错的地方,我们将不胜感激。
答案 0 :(得分:2)
尝试使用DBI的错误处理来查看错误。请参阅Programming the Perl DBI, chapter 4(错误处理)或"DBI::mysql error handling" on Perlmonks以获取参考。
答案 1 :(得分:0)
当我看不到发生的事情时,我经常做什么:
使用Data :: Dumper;
我的$ ref = $ sth-&gt; fetch();
print Dumper $ ref;
您将看到数据结构布局。有时,这是一个不正确的索引到数组或散列的问题。