mysql - 从 Perl 脚本显示 MySQL 查询结果

标签 mysql sql perl

我的 Perl 脚本应该打印我的查询结果。但是,目前我收到错误:

在 updateDB.pl 第 32 行无法通过包“SELECT * FROM SERVER”定位对象方法“fetchrow_array”(也许您忘记加载“SELECT * FROM SERVER”?)

我想这个问题很容易解决。但是我的 perl/MySQL 技能还有很多不足之处。我的脚本如下:

#!/usr/bin/perl

use DBI;
use DBD::mysql;

use strict;
use warnings;

MySQL("SELECT * FROM SERVER");

# define subroutine to submit MySQL command
sub MySQL
{
    # establish connection with 'serverDNA' database
    my $connection = DBI->connect("DBI:mysql:database=serverDNA;host=localhost");

    my $query = $_[0];  #assign argument to string

    my $statement = $connection->prepare($query);   #prepare query

    $statement->execute();   #execute query

    #loop to print MySQL results
    while (my @row = $query->fetchrow_array)
    {
            print "@row\n";
    }
}

非常感谢!

最佳答案

您正在对查询字符串调用 fetchrow_array;你想在声明中调用它。

while (my @row = $statement->fetchrow_array)
{
  print "@row\n";
}

关于mysql - 从 Perl 脚本显示 MySQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679935/

相关文章:

mysql - 如何在Activerecord中查询这个

php - 无法在 PHPMyAdmin 中选择 Latin-1 作为字符集

perl - IO::All:如何读取 ARGV 和 DATA?

perl - 将十六进制转换为 UTF8 在 perl 中无法按预期工作

php - 使用 PDO 设置连接超时

mysql - [MySQL] : Is there a more 'efficient' way to link these tables?

php - 如何通过电子邮件登录显示用户名?

mysql - 选择一个有重复的记录

sql - 使用一个查询中的 id 值到另一表中具有相同 id 的对应列

regex -\Q 和\E 内的哈希值