lua で mysql ステートメントのデータをエスケープする方法が必要です。私はphpでmysql_real_escape_string()のようなことをすることに慣れていますが、mysqlを使用してluaで同等のものを見つけることができません(sqlite3を使用していたときにcon:escape()が機能しました)。準備されたステートメントが解決策であると読みましたが、うまくいかないようです。私は何を間違っていますか?
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"
このエラーは、「メソッド 'prepare' を呼び出そうとしています (nil 値)」です。
ストレート SELECT * execute on con を実行しようとすると正常に動作するため、接続は確立されていますが、この準備ステートメントは機能しません (準備を有効な方法として認識していないようです)。