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);
}
}