http://www.perlmonks.org?node_id=237849


in reply to DBI quote: invalid number of parameters

An easier way is to let DBI do the escaping automatically for you with placeholders. Try this:
my $sth = $dbh->prepare( "INSERT INTO member (nickname, password, first_name, last_name, email, + country, homepage, im_type, im_id, info) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $sth->execute($nickname, $pass1, $firstname, $lastname, $email, $count +ry, $homepage, $imtype, $imid, $info) or die "execute failed: $DBI::errstr\n";
I suspect you have an undef value in one of your variables that's throwing off your INSERT. This way you shouldn't have to worry about it.

Gary Blackburn
Trained Killer