luamysql更新语句和where子句
所以我试图用LuaSQL和mySQL运行一个更新,但似乎只停留在一个地方。每当我尝试更新时,luamysql更新语句和where子句,mysql,database,lua,Mysql,Database,Lua,所以我试图用LuaSQL和mySQL运行一个更新,但似乎只停留在一个地方。每当我尝试更新时,WHERE子句总是在我身上失败,指出该列不存在。但是,该列是正确的,并且输出提供了不同的列名。这是update子句,以及运行它之后的结果 status,errorString = assert(conn:execute[[UPDATE Users SET count=count+1 WHERE userID = user#id50589297]])) lua: test3.lua:16: LuaSQL:
WHERE
子句总是在我身上失败,指出该列不存在。但是,该列是正确的,并且输出提供了不同的列名。这是update子句,以及运行它之后的结果
status,errorString = assert(conn:execute[[UPDATE Users SET count=count+1 WHERE userID = user#id50589297]]))
lua: test3.lua:16: LuaSQL: error executing query. MySQL: Unknown column 'user' in 'where clause'
stack traceback:
[C]: in function 'assert'
test3.lua:16: in main chunk
[C]: in ?
您的字符串
user 35; id50589297
缺少引号,它正试图将其解析为列标识符
status, err = assert(
conn:execute[[UPDATE Users SET count=count+1 WHERE userID='user#id50589297']]))
工作得很有魅力!所以我想如果我要使用一个变量,我必须在变量中包含引号?在Lua中,
%q
格式说明符将添加引号。但为了安全起见,大多数SQL库都提供了转义功能,以避免您应该使用的SQL注入。可能是conn:escape
?我还没有在任何Lua库中这样做过。