How to translate the following sqlite3 insert statement into equivalent mysql insert statement

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

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

Thanks a lot!

···

--
Posted via http://www.ruby-forum.com/.

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.

···

On Thu, Feb 28, 2013 at 6:08 PM, Yu W. <lists@ruby-forum.com> wrote:

Thanks a lot for reply! I've tried mysql gem. But it doesn't allow
expression like this
"(#{(['?'] * keys.size).join(',')})", *values"

it says mysql query method only allows one parameter.

···

--
Posted via http://www.ruby-forum.com/.

Thanks a lot! This is exactly what I need. Really appreciate it.

···

--
Posted via http://www.ruby-forum.com/.

Oh, sorry. It's been a while since I did this, but I believe you have
to call Mysql#prepare on the string containing the '?' placeholders,
which returns a Mysql::Stmt object. Call #execute on that object with
the *values. That's how it works with the Mysql2 gem, anyway; see
MySQL Ruby - programming MySQL in Ruby .

···

On Thu, Feb 28, 2013 at 7:18 PM, Yu W. <lists@ruby-forum.com> wrote:

Thanks a lot for reply! I've tried mysql gem. But it doesn't allow
expression like this
"(#{(['?'] * keys.size).join(',')})", *values"

it says mysql query method only allows one parameter.