Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: MySQL syntax error for ON DUPLICATE KEY UPDATE

by bradcathey (Prior)
on Jul 20, 2008 at 03:00 UTC ( #698873=note: print w/ replies, xml ) Need Help??


in reply to Re: MySQL syntax error for ON DUPLICATE KEY UPDATE
in thread MySQL syntax error for ON DUPLICATE KEY UPDATE

That was it! Made perfect sense. Thanks!

my $stmt = 'INSERT INTO contact_form (' . join(',', keys %sql) . ') VALUES (' . join(',', ('?') x keys %sql) . ') ON DUPLICATE KEY UPDATE '. join(' = ?, ', keys %sql) . ' = + ?'; $self->dbh->do( $stmt, undef, (values %sql, values %sql));
—Brad
"The important work of moving the world forward does not wait to be done by perfect men." George Eliot


Comment on Re^2: MySQL syntax error for ON DUPLICATE KEY UPDATE
Download Code
Re^3: MySQL syntax error for ON DUPLICATE KEY UPDATE
by rhesa (Vicar) on Jul 20, 2008 at 08:12 UTC
    Alternatively, you can refer to the values in the insert part with the values() function:
    insert into foo (bar, baz) values (?, ?) on duplicate key update bar = values(bar) , baz = values(baz)
    So your statement string would be:
    my $stmt = 'INSERT INTO contact_form (' . join(',', keys %sql) . ') VALUES (' . join(',', ('?') x keys %sql) . ') ON DUPLICATE KEY UPDATE '. join(', ', map { "$_ = values($ +_)" } keys %sql);

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://698873]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2015-07-06 04:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls