English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Доступ к базе данных 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"

Установка 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

Вы также можете использовать способ установки из исходного кода, адрес исходного кода Lua на Github:https://github.com/keplerproject/luasql

Lua подключение к базе данных MySql:

require "luasql.mysql"
--С версии 5.2, require больше не определяет глобальные переменные, нужно сохранять их возвращаемые значения.
--Нужно написать:
--luasql = require "luasql.mysql"
--Создание объекта среды
env = luasql.mysql()
--Подключение к базе данных
conn = env:connect("Имя базы данных","Имя пользователя","Пароль","IP адрес",порт)
--Настройка кодировки базы данных
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()   --Закрытие среды базы данных