in reply to Using SQL Placeholders correctly

The ? for the id field is for the auto_increment. Is that not how you specify the value for a auto_increment field?

For an auto_increment, or serial, field, you don't have to do anything at all. Just do the following:

my $sth_m = $dbh_m->prepare(<<SQL) or die $dbh_m->errstr; INSERT INTO memo (date, user, ref, creator, status, memo_text) values (?, ?, ?, ?, ?, ?) SQL $sth_m->execute("$year-$mon-$mday", $INPUT{user}, INPUT{ref}, $INPUT{username}, 'notread', $memo_final) or die $sth_m->errstr;

That is, don't do anything about specifying or filling in the id field. The database will fill it in for you.