Lua mysql,需要一种逃避数据的方法

时间:2011-06-11 21:01:38

标签: mysql lua luasql

我需要一种方法来逃避lua中mysql语句的数据。我习惯在php中做类似mysql_real_escape_string()的东西但是在lua中使用mysql找不到等价物(con:escape()在我使用sqlite3时工作)。我已经读过准备好的陈述是一个解决方案,但它似乎对我不起作用。我做错了什么?

require "luasql.mysql"
env = assert (luasql.mysql())
con = env:connect("db_name", "user", "pass", "localhost")
local stmt = con:prepare([[
    SELECT * FROM `user` 
    WHERE `login` = :a AND `pass` = :b LIMIT 1
]])
stmt.a = "some_user"
stmt.b = "some_pass"

这种错误与“尝试调用方法'准备'(一个零值)”。

如果我尝试在con上运行一个直接的SELECT *执行它工作正常,所以正在建立连接,但是这个prepare语句不起作用(它甚至不认为准备好作为一个有效的方法,似乎)。

1 个答案:

答案 0 :(得分:5)

看起来在过去的一两年内,prepare功能被添加到了LuaSQL中,所以也许你的版本有点老了?

另外,请尝试con:escape(yourQuery)进行转义,这可能足以满足您的需求。