4
My Perl 스크립트가 내 쿼리의 결과를 인쇄합니다. 그러나 그 순간에 나는 오류 받고 있어요 :Perl 스크립트에서 MySQL 쿼리 결과 표시
Can't locate object method "fetchrow_array" via package "SELECT * FROM SERVER" (perhaps you forgot to load "SELECT * FROM SERVER"?) at updateDB.pl line 32
내가 문제를 해결하기 쉬운 하나의 상상 ...하지만 내 펄/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을 변경 시도> fetchrow_array –
DBI로 작업 할 때 고려해야 할 몇 가지가 있습니다. 이 경우 DBD를'사용 '할 필요는 없으며 DBI가 자동으로 DBD를로드합니다. DBI 의사는 연결 핸들러의 이름을 $ dbh로 지정하고 명령문 핸들러를 $ sth로 지정하는 것이 가장 좋습니다. DBI 문서에서 '가져 오기'의 다른 유형과'준비 '가 무엇인지에 관해 읽어 보시기 바랍니다. :) – simbabque