Hi, As far as I know, the method fetchrow_hashref doesn't require a parameter (like fetchall_hashref).
Teddy ----- Original Message ----- From: "john" <[EMAIL PROTECTED]> To: <beginners@perl.org> Sent: Tuesday, December 13, 2005 09:30 AM Subject: DBI problem > Hi all- > I'm attempting to loop thru an input file, executing a SELECT query > with the value from each line. > The script works for the first iteration, and then gives these error > messages: > > DBD::mysql::st fetchrow_hashref failed: fetch() without execute() at > ./describe_skus.pl line 27, <INFILE> line 2190. > Use of uninitialized value in print at ./describe_skus.pl line 27, > <INFILE> line 2190. > Use of uninitialized value in print at ./describe_skus.pl line 27, > <INFILE> line 2190. > Use of uninitialized value in print at ./describe_skus.pl line 27, > <INFILE> line 2190. > Use of uninitialized value in print at ./describe_skus.pl line 27, > <INFILE> line 2190. > > (INFILE line 2190 is the last line.) > Here's my script: > > #!/usr/bin/perl -w > use strict; > use DBI; > > # purpose: To take sku numbers from a text file, "no-imgs.txt", > # and print out their database descriptions, to a separate text file, > "need-images.txt". > > open INFILE, "no-imgs.txt" or die "Input file failed to open: $!\n"; > open OUTFILE, "> need-images.txt" or die "Output filehandle not open: > $!\n"; > my @nums = <INFILE>; > > my $dbh=DBI->connect('dbi:mysql:productdb','script','') || > die "Error connecting to database: $DBI::errstr\n"; > > my $query2 = qq{SELECT `sku`, `title`, `vendor_stock_no`, `vendor_id` > FROM `products` WHERE `sku`=?}; > > for my $num (@nums) { > last unless $num; #exit at end-of-input-file > next if $num =~ /^\s*\t*\n$/; # to skip over blank lines > $num =~ s/^\s+//; # delete leading spaces > chomp $num; > > my $sth2= $dbh->prepare($query2) || die "Prepare failed: > $DBI::errstr\n"; > $sth2->execute ("$num") || die "Couldn't execute query: $DBI::errstr\n"; > > while ((my $ref) = $sth2 ->fetchrow_hashref("$num")) { > print OUTFILE "sku, \t title, \t vendor_stock_no, \t vendor_id \n", > $ref->{sku}, $ref->{title}, $ref->{vendor_stock_no}, > $ref->{vendor_id}; > } > $sth2->finish (); > } > > $dbh->disconnect || die "Failed to disconnect\n"; > close OUTFILE or die "cannot close output file need-imgs.txt: $!"; > #End > > Thanks in advance for your suggestions. > John > > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > <http://learn.perl.org/> <http://learn.perl.org/first-response> > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>