我的ruby orm在使用sqlite3时遇到了一个问题
我的orm有一个save函数,它将记录保存在数据库中,并将objects示例id设置为新记录的id:
def save
sql = "INSERT INTO #{table_name_for_insert} (#{col_names_for_insert}) VALUES (#{values_for_insert})"
DB[:conn].execute(sql)
@id = DB[:conn].execute("SELECT last_insert_rowid() FROM #{table_name_for_insert}")[0][0]
end
``` `table_name_for_insert` 返回“学生” `col_names_for_insert` 返回“name,grade” `values_for_insert` 返回“'sam','11'”
然而,当 `SELECT * FROM students` 在save方法之后运行返回的记录是:
[{"id" => 1,
'name" => "Sam",
"grade => 11,
0 => 1,
1 => "Sam",
2 => 11 }]
我期待前三列,但我不知道为什么后三列存在。
如果有人知道发生了什么我很感激,我肯定这是我的愚蠢错误。
1条答案
按热度按时间xa9qqrwz1#
这是由于使用了不正确的splite3 gem版本造成的。在那之后,我不再有额外列的问题。