1

I am attempting to create a prepared insert statement in Sequel and I am as far as

db[:registration].prepare(:insert)
=> <Sequel::Mysql2::Dataset/PreparedStatement "INSERT INTO `registration` () VALUES ()">

How do I create a statement that is something like the following:

INSERT INTO `registration` (`name`, `email`) VALUES (?, ?)

The documentation is a little bit obtuse and I can't find any examples online.

4

2 回答 2

4

通过查看他们的 rspecs 想出这一点:

statement = db[:registration].prepare(:insert, :prepared_statement_name, :email => :$email, :name => :$name)
statement.call(:name => "foo", :email => "foo@bar.com")

笔记

传递的键.call对应于在散列中传递的值prepare。所以这也可以:

statement = db[:registration].prepare(:insert, :prepared_statement_name, :email => :$e, :name => :$n)
statement.call(:n => "foo", :e => "foo@bar.com")
于 2013-09-14T05:51:40.923 回答
1
ds = db[
         "INSERT INTO `registration` (`name`, `email`) VALUES (?, ?)", 
         name, email
     ]
ds.call(:insert)
于 2015-06-11T21:13:46.043 回答