【问题标题】:How do I create a prepared insert statement in Sequel?如何在 Sequel 中创建准备好的插入语句?
【发布时间】:2013-09-18 19:52:18
【问题描述】:

我正在尝试在 Sequel 中创建一个准备好的 insert 语句,我目前为止

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

如何创建类似于以下内容的语句:

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

文档有点迟钝,我在网上找不到任何示例。

【问题讨论】:

    标签: ruby mysql2 sequel


    【解决方案1】:

    看看他们的 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")
    

    【讨论】:

    【解决方案2】:
    ds = db[
             "INSERT INTO `registration` (`name`, `email`) VALUES (?, ?)", 
             name, email
         ]
    ds.call(:insert)
    

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多