Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua sqlite Select语句_Sqlite_Lua_Coronasdk - Fatal编程技术网

Lua sqlite Select语句

Lua sqlite Select语句,sqlite,lua,coronasdk,Sqlite,Lua,Coronasdk,我有下面的代码来创建一个数据库表,如果它还不存在,那么检查当前用户是否在数据库中。我通过选择id等于设备id的用户来实现这一点。现在的代码应该打印hello world,然后转到表单。但是,当我运行代码时,什么也没有发生,没有错误,也没有打印语句。你知道为什么会这样吗 local tablesetup = [[CREATE TABLE IF NOT EXISTS User (id VARCHAR(255) PRIMARY KEY, name);]] db:exec(tablesetup)

我有下面的代码来创建一个数据库表,如果它还不存在,那么检查当前用户是否在数据库中。我通过选择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

nrows
返回查询生成的所有行。如果查询中没有生成行(例如,因为找不到要查找的项),则循环将不会启动。因为没有与查询匹配的行

如果您希望检测查询是否成功,那么您需要实际检查它


另外,请停止使用字符串连接生成查询。学习如何正确使用。它更干净,并且不会让您受到SQL注入攻击。

nrows
返回查询生成的所有行。如果查询中没有生成行(例如,因为找不到要查找的项),则循环将不会启动。因为没有与查询匹配的行

如果您希望检测查询是否成功,那么您需要实际检查它


另外,请停止使用字符串连接生成查询。学习如何正确使用。它更干净,并且不会让您受到SQL注入攻击。

我想做的是检查用户是否在数据库中。因此,如果它们不在数据库中,循环将被跳过?@ewein:是的。就像在空列表上循环一样,不会进入循环。我想做的是检查用户是否在数据库中。因此,如果它们不在数据库中,循环将被跳过?@ewein:是的。就像在一个空列表上循环一样,你不会进入循环。