in reply to SQL UPDATE and DBI for MySQL

Additionally, you need to interpolate your query by using a qq instead of a q, since this will pass the character sequence $id rather than the variable value to the database.

For easier debugging, set $dbh->{RaiseError} = 1 after you create your database handle. This will throw a die on any errors, and the message thrown will include something helpful like ERROR:  parser: parse error at or near "where".

Chris
M-x auto-bs-mode