mysql - PERL::DBI 在列表中获取用户数据库

标签 mysql perl dbi

我正在尝试制作一个小脚本来从我的数据库中提取数据库/表/列,但在第一步中我无法继续,我在奇怪的列表中获取数据库,请查看:

#!/usr/bin/perl
use DBI;

$host = "localhost";
$user = "wnyclick_siteusr";
$pw = "Hank0402\$";

$dsn = "dbi:mysql:$database:localhost:3306";
$connect = DBI->connect($dsn, $user, $pw);
$databases = $connect->selectcol_arrayref('show databases');

use Data::Dumper;
print Dumper $databases;

执行此代码会给出以下内容:

$VAR1 = [
          'information_schema',
          'wnyclick_sitedatawp'
        ];

如何将这个执行结果放入列表中?

print @VAR1[0];
print @databases[0];

最佳答案

我刚刚修改了你的代码。尝试下面的代码:

#!/usr/bin/perl -w
use DBI;
use DBD::mysql;

my $user = "wnyclick_siteusr";
my $pw   = "Hank0402\$";

#Connecting Database
$dbh = DBI->connect( 'dbi:mysql:database=mysql;host=localhost;port=3306', '$user', '$pw' )
    or die "Connection Error: $DBI::errstr\n";
$sql = "show databases";
$sth = $dbh->prepare($sql);
$sth->execute or die "SQL Error: $DBI::errstr\n";

while ( @row = $sth->fetchrow_array ) {
    #print $row[1];
    print "@row\n";
}

关于mysql - PERL::DBI 在列表中获取用户数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480616/

相关文章:

r - 为什么 DBI ODBC 连接告诉我 CoInitialize 尚未被调用?

PHP 和 MySQL - 发布双重条目

MySQL FullText bool 模式 : searching keywords that contain '+' as part of the string

oracle - 数据库驱动错误: error possibly near <*> indicator at char 15 in 'TRUNCATE TABLE <*>MONTHLY_DATA' )

perl - Perl 中的 Win32::AdminMisc 编译错误

linux - SSH 使用 Perl 脚本在远程站点创建目录

perl - 可以在 DBI 的 selectcol_arrayref & Co. 中使用命名占位符吗?

mysql - 如何检查 mysql 数据库连接是否已设置以及特定表是否已创建

mysql - 如何在批量插入之前将 .csv 文件中的日期转换为 SQL 格式

perl - 为什么新打开的句柄上的 FileHandle::getpos 返回空字符串而不是 0?