http://qs321.pair.com?node_id=918140

baperl has asked for the wisdom of the Perl Monks concerning the following question:

hi, I have looked at previous posts and so included
use DBIx::Simple; use SQL::Abstract;
but to no avail. I have an INSERT statement in my code (table has 44 columns, first being an auto_increment id) that reads as (I've not included all 43 columns for brevity):
my $q = "INSERT INTO history (`Symbol`,`Company_Name`,`Last_Price`,... +...,`Mktcap`) VALUES (?,?,?,STR_TO_DATE(?,\'%m/%d/%Y'),TIME(?),?,?,?, +?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? +)";
When I only had 24 ?s following TIME(?)(making it a total of 29 values), I was getting the following error:
DBD::mysql::st execute failed: Column count doesn't match value count +at row 1 at rtd.pl line 62.
so, I went in and added 14 ?s towards the end to total it to 43 ?s (as in the above code) and now I get the following error:
DBD::mysql::st execute failed: called with 29 bind variables when 43 a +re needed at rtd.pl line 65.
can you please help me fix it.... I'm including the remaining code:
$sth = $dbh->prepare($q) or die $dbh->errstr; #the below includes 'id' which is auto_increment my @fields = ('id','Symbol','Company Name','Last Price',....,'Market-c +ap'); my @symbols = ('AA','C'); useRealtimeQueryFormat(); my @quotes = getquote(@symbols); while ($cc < 22222) { $cc++; foreach my $q (@quotes) { my @h = @{$q}; join("\t",@h),"\n"; my $c = @h; for ( my $i = 0 ; $i < $c ; $i++ ) { my $j = 1+ $i; $h[$i] =~ s/ +//; $h[$i] =~ s/ %//; $h[$i] = ($h[$i] eq 'N/A') ? undef : $h[$i]; } $sth->execute(@h); } }