gpt4 book ai didi

ruby - 在 sqlite3 Bind 中对冗余项使用哈希

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:04 26 4
gpt4 key购买 nike

我正在尝试运行 INSERT 查询,如下所示:

Query = "INSERT INTO t (x,y,z) VALUES (:aval,:bval,:cval)"

使用以下格式,我可以使用散列来插入实际值:

db.execute(Query,{"aval" => "1", "bval" => "2", "cval" => "3"})

我的问题是这些值已经在具有一些冗余值的散列中,例如:

{"aval" => "1", "bval" => "2", "cval" => "3", "dval" => "4"}

由于 dval 不是必需的参数之一,我收到错误 -

SQLite3::Exception: no such bind parameter

当然,我可能是错的,错误可能是由于不同的原因。如果有一种方法可以使用 SQLite3 来克服这个问题,那就太好了。或者,仅使用所需参数创建 has 的“修剪”副本的方法也可以。

最佳答案

你应该写成 -

Query = "INSERT INTO t (x,y,z) VALUES (?,?,?)"
hash = {"aval" => "1", "bval" => "2", "cval" => "3"}
db.execute(Query, hash.values_at("aval", "bval", "cval" ))

阅读此 execute( sql, *bind_vars ) {|row| ...}文档。

关于ruby - 在 sqlite3 Bind 中对冗余项使用哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23907131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com