Hi typomaniac. Your code doesn't compile, because you're just pasting chunks from your script. Eg:
my %medals=(
"$med1"=>"$me1",
"$med2"=>"$me2",
"$med3"=>"$me3",
my $table="table";
Please post actual working code, with
use strict; and
use warnings; enabled. Then we'll be able to help more easily! See
How do I post a question effectively?
Edit:
Also, here's a couple of observations.
-
You should use $dbh->prepare outside a loop and then use $dbh->execute inside the loop with the bind values. Your code prepares the statement handle each time through the loop; the whole point of prepare() is so you only have to do it once.
-
You use LAST_INSERT_ID() each time you execute the statement handle as one of the bind values, but you don't do any (more) inserts. If what you really want is the same value for that column in each row, get it before you prepare the statement handle (once) and put it in the SQL.
Hope this helps!
The way forward always starts with a minimal test.