我试图从sqlite数据库中获取一些值,但是不是返回值enter code here
,而是返回另一个数组内的数组中的值。
我的代码:
SELECT
问题:
当我运行def self.find(id, database_connection)
name = database_connection.execute("SELECT name FROM pokemon WHERE id = ?", id)
type = database_connection.execute("SELECT type FROM pokemon WHERE id = ?", id)
pokemon_inst = Pokemon.new(id: id, name: name, type: type, db: database_connection)
end
pry.binding
输出name
[["Pikachu"]]
输出type
这是否正常?我无法想象我应该只是致电[["electric]]
来访问数据,对吗?
答案 0 :(得分:0)
execute()方法将它返回的所有内容包装在一个数组中,每个数据库行都放在一个数组中。因此,对于被查询的单个值在两个数组中是正确的。
由于一切正常,我将把我的代码调整为:
def self.find(id, database_connection)
pokemon = database_connection.execute("SELECT * FROM pokemon WHERE id = ?", id).flatten
name = pokemon[1]
type = pokemon[2]
pokemon_inst = Pokemon.new(id: id, name: name, type: type, db: database_connection)
end
在为数组分配查询数据并从该数组中分配各个值时,调整到flatten
数组。