Мне нужен способ экранирования данных для операторов mysql в lua. Я привык делать что-то вроде mysql_real_escape_string () в php, но не могу найти эквивалент в 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"
Это ошибка с «попыткой вызова метода« prepare »(нулевое значение)».
Если я пытаюсь запустить прямое выполнение SELECT * на con, оно работает нормально, поэтому соединение устанавливается, но этот оператор prepare не работает (кажется, что он даже не распознает подготовку в качестве допустимого метода).