从SQLite3结果集中检索值似乎不一致?

时间:2014-11-20 12:50:13

标签: ruby sqlite

如果我运行execute("SELECT * FROM users WHERE id = 1")[0][0],我将从该结果集的第一行返回第一个字段。

如果我运行prepare("SELECT * FROM users WHERE id = ?").execute(1)[0][0],我觉得它应该返回相同的结果,我收到错误[] NoMethodError

我不能为我的生活弄清楚为什么和文档看起来真的很稀疏。发生了什么事?

1 个答案:

答案 0 :(得分:0)

您的两个execute方法并不相同,并且会返回不同的内容。

在第一个实例中,您在Database上调用execute,它返回一个简单的数组。然后使用[]正确地将其编入索引。

但是,prepare会返回Statement对象,然后您可以在其上调用execute。而是返回ResultSet,它没有与数组相同的语义。

您可能正在寻找execute!