On Thu, Feb 28, 2013 at 6:08 PM, Yu W. <lists / ruby-forum.com> wrote:
> sqlite3 insert statement:
> db.execute "INSERT INTO events(#{keys.join(',')}) VALUES (#{(['?'] *
> keys.size).join(',')})", *values
>
> I'm very confused about this part:
> (#{(['?'] * keys.size).join(',')})", *values

It's basically creating a string with a certain number of question
marks, and then supplying values at the end to be substituted for
those question marks. E.g. if keys is ['foo' 'bar' 'baz'] and values
is [123, 456, 789], it will generate the command (with placeholders)
'INSERT INTO events(foo, bar, baz) VALUES (?, ?, ?)'; db.execute then
plugs in 123, 456, and 789 into the question mark slots.

>
> how can I write a mysql insert statement that functions the same?

Have you tried it in MySQL? It looks like it should work just the same
in pretty much any SQL engine.