我如何在 LuaSQLite 3 中使用参数化查询?

怎么在 LuaSQLite 3 中使用参数化查询?

我已经阅读了这里的文档:http://luasqlite.luaforge.net/lsqlite3.html#methods,关于预编译语句;

还查看了这里的示例:如何为 LuaSQL 引用值?

但我无法让以下代码工作:

getTable = function( _key)
    local path = system.pathForFile("database.db", system.ResourceDirectory)
    local dc = sqlite3.open( path )

    local stmt = dc:prepare[[ SELECT * FROM Table WHERE Key = :Key ]]
    local sql = stmt:bind({key=_weaponType})
    return dc:nrows(sql)
end

我在以下行上得到错误:

attempt to index 'stmt' (a nil value)

在这行:

local sql = stmt:bind({key=_weaponType})

附:我目前正在使用 Corona SDK 开发游戏。

原文链接 https://stackoverflow.com/questions/8061830

点赞
stackoverflow用户282536
stackoverflow用户282536

你遇到了 attempt to index 'stmt' (a nil value) 的错误,意味着 dc:prepare 没有返回任何值。

我猜它实际上返回了 nil,errormsg:检查下错误是什么;你的语句可能有问题。

2011-11-09 09:18:20
stackoverflow用户462615
stackoverflow用户462615

stmt 是一个空值时,是因为准备指令失败了。请确保所有的字段都存在,并且查询语句是有效的。

2014-06-24 23:58:50