Доступ к базе данных в Lua
В этой статье в основном представлена библиотека для работы с базами данных в Lua:LuaSQLОна имеет открытый исходный код, а поддерживаемые базы данных включают: ODBC, ADO, Oracle, MySQL, SQLite и PostgreSQL.
В этой статье рассказывается о подключении к базе данных MySQL.
LuaSQL можно использоватьLuaRocksдля установки; при необходимости можно установить нужный драйвер базы данных.
Способ установки LuaRocks:
$ wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz
$ tar zxpf luarocks-2.2.1.tar.gz
$ cd luarocks-2.2.1
$ ./configure; sudo make bootstrap
$ sudo luarocks install luasocket
$ lua
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require "socket"
$ tar zxpf luarocks-2.2.1.tar.gz
$ cd luarocks-2.2.1
$ ./configure; sudo make bootstrap
$ sudo luarocks install luasocket
$ lua
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require "socket"
Установка LuaRocks в Windows:https://github.com/keplerproject/luarocks/wiki/Installation-instructions-for-Windows
Установка различных драйверов баз данных:
luarocks install luasql-sqlite3
luarocks install luasql-postgres
luarocks install luasql-mysql
luarocks install luasql-sqlite
luarocks install luasql-odbc
luarocks install luasql-postgres
luarocks install luasql-mysql
luarocks install luasql-sqlite
luarocks install luasql-odbc
Вы также можете использовать установку из исходного кода. Адрес исходного кода Lua на Github:https://github.com/keplerproject/luasql
Подключение Lua к базе данных MySql:
Пример
require "luasql.mysql"
--Создать объект окружения
env = luasql.mysql()
--Подключение к базе данных
conn = env:connect("имя базы данных","имя пользователя","пароль","IP-адрес",port)
--Установка формата кодировки базы данных
conn:execute"SET NAMES UTF8"
--Выполнение операций с базой данных
cur = conn:execute("select * from role")
row = cur:fetch({},"a")
--Создание объекта файла
file = io.open("role.txt","w+");
while row do
var = string.format("%d %s\n", row.id, row.name)
print(var)
file:write(var)
row = cur:fetch(row,"a")
end
file:close() --Закрыть файловый объект
conn:close() --Закрыть соединение с базой данных
env:close() --Закрыть окружение базы данных
--Создать объект окружения
env = luasql.mysql()
--Подключение к базе данных
conn = env:connect("имя базы данных","имя пользователя","пароль","IP-адрес",port)
--Установка формата кодировки базы данных
conn:execute"SET NAMES UTF8"
--Выполнение операций с базой данных
cur = conn:execute("select * from role")
row = cur:fetch({},"a")
--Создание объекта файла
file = io.open("role.txt","w+");
while row do
var = string.format("%d %s\n", row.id, row.name)
print(var)
file:write(var)
row = cur:fetch(row,"a")
end
file:close() --Закрыть файловый объект
conn:close() --Закрыть соединение с базой данных
env:close() --Закрыть окружение базы данных