Lua sqlite选择语句

我有以下代码,用于创建一个数据库表,如果它不存在,然后检查当前用户是否在数据库中。我通过选择所有设备 ID 等于其 id 的用户来实现此操作。目前代码应该打印 hello world,然后转到表单。但是,当我运行代码时,什么都没有发生,没有错误,也没有打印语句。有什么想法为什么会发生这种情况吗?

local tablesetup = [[CREATE TABLE IF NOT EXISTS User (id VARCHAR(255) PRIMARY KEY, name);]]
    db:exec(tablesetup)

    --Check if the user is in the database already
    for row in db:nrows("SELECT * FROM User WHERE id = " .. "'" .. system.getInfo("deviceID") .. "'") do
        print("hello")
        if(row.id == nil) then
            print("world")
            storyboard.gotoScene("forms")
        end
    end
点赞
用户734069
用户734069

nrows 返回查询产生的所有行。如果查询未产生任何行(例如,未找到您要查找的项目),则循环将不会开始。因为没有行与查询匹配。

如果您要检测查询是否成功,则需要实际检查。

此外,请停止使用字符串拼接构建查询。学习如何使用预处理语句和正确的值绑定。它更清洁,并且具有不让您容易受到SQL注入攻击的好处。

2012-05-27 20:02:07