我正在尝试在 Sequel 中创建一个准备好的 insert
语句,我已经做到了
db[:registration].prepare(:insert)
=> <Sequel::Mysql2::Dataset/PreparedStatement "INSERT INTO `registration` () VALUES ()">
如何创建类似于以下内容的语句:
INSERT INTO `registration` (`name`, `email`) VALUES (?, ?)
文档有点晦涩,我在网上找不到任何示例。
通过查看他们的 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")
我是一名优秀的程序员,十分优秀!