gpt4 book ai didi

ruby - 使用 ruby​​ 库将行插入 sqlite3 数据库时出现问题

转载 作者:行者123 更新时间:2023-12-02 11:16:46 25 4
gpt4 key购买 nike

我是个新手。我有一个数据库,其中有一个名为 OUTPUTS 的表,其中所有列都是整数类型。我正在尝试使用以下 ruby​​ 脚本将一行插入到 OUTPUTS 中:

require 'rubygems'
require 'sqlite3'
...
db=SQLite3::Database.new("development.sqlite3")
db.execute( "INSERT into OUTPUTS (user_id,eac,pac,vac,iac,epv,ppv,vpv) VALUES (10,@eac,@pac,@vac,@iac,@epv,@ppv,@vpv);" )

运行此脚本后,我确实得到了一个新行,并且 user_id 列中按预期包含 10,但其余列为空,即使我验证了所有变量(@eac、@pac、等)确实包含值。我的语法有什么问题?

最佳答案

您将变量的名称发送到 sqlite,而不是它们的值。这就是您想要的:

db.execute( "INSERT into OUTPUTS (user_id,eac,pac,vac,iac,epv,ppv,vpv)
VALUES (10,#{@eac},#{@pac},#{@vac},#{@iac},#{@epv},#{@ppv},#{@vpv});" )

但更好的是使用这样的变量绑定(bind):

db.execute( "INSERT into OUTPUTS (user_id,eac,pac,vac,iac,epv,ppv,vpv) 
VALUES (10,?,?,?,?,?,?,?)",
@eac,@pac,@vac,@iac,@epv,@ppv,@vpv)

(我可能搞乱了我的计数)。

查看How do I use placeholders in an SQL statement?了解更多详细信息。

关于ruby - 使用 ruby​​ 库将行插入 sqlite3 数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141236/

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