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

时间:2011-11-09 07:51:48

标签: sql lua corona

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

我尝试了解文件:

http://luasqlite.luaforge.net/lsqlite3.html#methods准备好的陈述

并查看此处的示例:

How to quote values for 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})

P.S。我目前正在使用Corona SDK开发游戏。

2 个答案:

答案 0 :(得分:5)

attempt to index 'stmt' (a nil value)错误意味着dc:prepare没有返回任何内容。

我认为它实际上正在返回nil,errormsg:检查错误是什么;你的陈述可能是不正确的。

答案 1 :(得分:0)

当stmt为空值时,因为准备指令失败。确保所有字段都存在且查询有效