Lua sqlite Select语句
我有下面的代码来创建一个数据库表,如果它还不存在,那么检查当前用户是否在数据库中。我通过选择id等于设备id的用户来实现这一点。现在的代码应该打印hello world,然后转到表单。但是,当我运行代码时,什么也没有发生,没有错误,也没有打印语句。你知道为什么会这样吗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)
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:是的。就像在一个空列表上循环一样,你不会进入循环。