in reply to SQL do update is killing me

Greetings "anonymous" (are you andrew?),

Always use bind values or placeholders when possible. They'll take care of all the quoting issues that come up from time to time.

my $p = 33; $dbh->do(q{ UPDATE settings SET limit = ? }, undef, $p) or die $dbh->errstr;

The undef is important. It's where you would put a reference to an array detailing any attributes you want included in the do action. I've never used it yet, but you have to add the undef else things don't work.

Spend some time scanning (or better yet reading) through the DBI documentation. You'll be glad you did.

Update: Although I think the problem you're encountering is caused by a quoting issue, there's also the chance that "limit" is a reserved word for your particular database's SQL. Try renaming the column to something else and retrying the UPDATE query. (Actually, try a SELECT first.)

-gryphon
code('Perl') || die;