【问题标题】:How do I use a parameterized query in LuaSQLite 3?如何在 LuaSQLite 3 中使用参数化查询?
【发布时间】:2011-11-09 07:51:47
【问题描述】:

如何在 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})

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

【问题讨论】:

    标签: sql lua coronasdk


    【解决方案1】:

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

    我假设它实际上返回了nil,errormsg:检查错误是什么;您的陈述可能格式不正确。

    【讨论】:

    • 我没有意识到在 LUA 中可以有更多的 1 返回值!谢谢,这帮助我解决了我的问题。
    • 你刚刚犯了一个 Lua 大写意外:它只是 lua(你没有 PYTHON):)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2018-01-02
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 2013-05-14
      • 2022-06-13
      相关资源
      最近更新 更多