Skip to main content

db

SQLite: база — файл в каталоге плагина. Вкомпилирован в модуль: сервера, драйвера и конфига нет. Нужен там, где данные надо запрашивать; для конфига и списка админов проще store. Значения передаются через ? и подставляются драйвером.
Не склеивай запрос из данных игрока. Ник — это то, что игрок написал сам: через ? он попадёт в базу строкой, чем бы ни был, в склейке — станет частью запроса.

Типы

Обратно INTEGER и REAL приходят числом, TEXT и BLOB — строкой. NULL приходит как nil, то есть ключа в таблице строки просто нет. Числа в Lua — double: точность целых кончается на 2^53.

Запросы идут в кадре

Модуль однопоточный, запрос выполняется прямо в игровом кадре. Локальный файл в WAL отвечает за доли миллисекунды, но запрос по таблице без индекса заморозит сервер целиком, поэтому слишком долгий прерывается:
Увидел предупреждение — ставь индекс, а не поднимай лимит. Сторож не покрывает ожидание блокировки: если файл базы держит другой процесс, ждать придётся честно.

Открытие

Объект базы

Подготовленное выражение