DBIを使ってのデータの取り出しについて
自分で作ったmysqlからデータを参照し様として
#!/usr/bin/perl
print "Content-type: text/html \n\n";
use DBI;
#######DBIパス編集##########
$DB='****'
$DBusr='****'
$DBpass='****'
$DBtable='****'
#########DBI操作############
$FIND = "SELECT a,b,c,d,e,f,g,h,i FROM $DBtable WHERE a=\'****\' limit 1";
$dbh = DBI->connect($DB,$DBusr,$DBpass);
$serch = $dbh->prepare($FIND);
$serch->execute;
$serch = $serch->fetch;
#######取り出したデータを配列に代入########
$r = 0;
while( @rows = $serch->fetchrow_array ) {
for( $f = 0; $f < $serch->{NUM_OF_FIELDS}; $f++ ) {
$data{$serch->{NAME_lc}->[$f]}{$r} = $rows[$f];
}
$r++;
}
while( ($key, $val) = each %data ) {
while( ($key2, $val2) = each %{$val} ) {
$hash{$key} = $val2;
}
}
$a = $hash{'a'};
$b = $hash{'b'};
$c = $hash{'c'};
$d = $hash{'d'};
$e = $hash{'e'};
$f = $hash{'f'};
$g = $hash{'g'};
$h = $hash{'h'};
##########テスト用に表示#############
print "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;CHARSET=Shift_JIS\">";
print "<HTML><HEAD>";
print "<TITLE></TITLE>";
print "</HEAD>";
print "<BODY BGCOLOR=$bgc TEXT=\"$txtc\" LINK=\"$lic\">";
print "テスト:$bgc,$txtc,$lic,$button,$sight_name,$sight_tit,$bun1,$sex";
print "</BODY></HTML>";
と書いてるのですが、実行するとデータが取り出せません。
調べてみると
while( @rows = $serch->fetchrow_array )
の部分でエラーが出ます。
Can't call method "fetchrow_array" on unblessed reference atと言われてしまうのですが、何か記述の仕方等何か間違ってる部分などあれば指摘お願い致します。
ちなみにデータベースへの接続等は出来ています。
お礼
有難うございます。 これで簡単にデータを読み出す事が出来ました。