Lua mysql,需要一种转义数据的方法。

我需要一种方法在Lua中为MySQL语句转义数据。我习惯使用php中的mysql_real_escape_string(),但是我在使用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"

这个错误为"attempt to call method 'prepare' (a nil value)"。

如果我尝试在con上运行直接的SELECT * execute,它可以正常工作,所以连接正在确立,但是这个准备语句不工作(它甚至似乎没有识别准备作为一个有效的方法)。

原文链接 https://stackoverflow.com/questions/6318525

点赞
stackoverflow用户4323
stackoverflow用户4323

似乎在过去一两年中,LuaSQL 添加了 prepare 功能,所以也许您的版本有点旧?

另外,请尝试使用 con:escape(yourQuery) 进行转义,也许这已经能够满足您的需要了。

2011-06-12 00:12:26