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

Acesso ao Banco de Dados do Lua

Este artigo apresenta a biblioteca de operação de banco de dados Lua:LuaSQL. Ele é open-source, suporta bancos de dados como: ODBC, ADO, Oracle, MySQL, SQLite e PostgreSQL.

Este artigo apresenta a conexão com o banco de dados MySQL.

LuaSQL pode usar LuaRocks Pode instalar o driver de banco de dados necessário conforme necessário.

Métodos de instalação do 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
$ ./configurar; sudo make bootstrap
$ sudo luarocks install luasocket
$ lua
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require "socket"

Instalação do LuaRocks no Windows:https://github.com/keplerproject/luarocks/wiki/instalação-instruções-for-Windows

Instalar diferentes drivers de banco de dados:

luarocks install luasql-sqlite3
luarocks install luasql-postgres
luarocks install luasql-mysql
luarocks install luasql-sqlite
luarocks install luasql-odbc

Você também pode usar a maneira de instalação de código-fonte, endereço do código-fonte do Lua Github:https://github.com/keplerproject/luasql

Conectar ao banco de dados MySql do Lua:

require "luasql.mysql"
--5.2 Versão após, require não define variável global, precisa salvar seu valor de retorno.
--Precisa ser escrito:
--luasql = require "luasql.mysql"
--Criar objeto do ambiente
env = luasql.mysql()
--Conectar ao banco de dados
conn = env:connect("Nome do Banco de Dados", "Nome do Usuário", "Senha", "Endereço IP", porta)
--Definir o formato de codificação do banco de dados
conn:execute"SET NAMES UTF8"
--Executar operação do banco de dados
cur = conn:execute("select * from role)
row = cur:fetch({}, "a")
--Criação do objeto do arquivo
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()  --Fechar o objeto do arquivo
conn:close()  --Fechar a conexão do banco de dados
env:close()   --Fechar o ambiente do banco de dados