Объект соединения
conn:query
Выполняет запрос и отдаёт строки в коллбэк.Аргументы
Есть два способа передать значения для Для динамического количества параметров можно передать их одной таблицей:Оба варианта поддерживаются.
?.Старый вариант передаёт их отдельными аргументами:Возвращает
Пример
Отдельные параметрыФорма с таблицей особенно удобна для запросов, которые собираются динамически:
Соединения переживают
lua_reload и выгрузку плагина: сокет закрывается
только при остановке сервера, а не при перезагрузке — обрывать чужой
запрос на середине нельзя, см. ниже.conn:exec
conn:exec полностью эквивалентен conn:query. Отличается только
названием: query обычно используется для SELECT, а exec — для
INSERT, UPDATE и DELETE.
Аргументы
Возвращает
Пример
conn:find
SELECT по одной таблице. Собирает запрос сам; значения вwhere идут через ?.
Аргументы
opts
Возвращает
Пример
conn:create
INSERT одной строки. Ключи таблицы — имена колонок, значения — через?.
Аргументы
Возвращает
Пример
conn:update
UPDATE: обязательны иset, и where (оба непустые).
Аргументы
opts
Возвращает
Пример
conn:delete
DELETE.where обязателен и непустой (защита от «удалить всё»).
Аргументы
opts
Возвращает
Пример
conn:migrate
Прогоняет миграции последовательно на этом соединении (под однимuse_lock). Уже применённые id пропускаются. Книга учёта —
Аргументы
opts
migrations — массив шагов:
Нужен
sql или file.
files — массив имён файлов; id миграции = имя файла целиком
(001_init.sql).
Можно передать оба списка: сначала migrations, потом files.
Возвращает
Ответ
Как уquery, плюс:
Пример
Повторный вызов с тем же
id ничего не делает. Новый шаг — новый id.
Весь batch одной миграции идёт строго по очереди; параллелить шаги нельзя.conn:close
Закрывает соединение.Возвращает
Ничего. Помечает соединение закрытым сразу; сам сокет освобождается позже, когда рабочий поток до него дойдёт (или при остановке сервера, если запросов на нём больше нет). Запросы, уже отправленные до:close(), доигрывают и получают res.error.