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

Acceso a bases de datos de Lua

Este artículo se centra en presentar la biblioteca de operaciones de bases de datos Lua para usted:LuaSQL。它是开源的,支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。

Este artículo le presenta la conexión de base de datos MySQL.

LuaSQL se puede usar LuaRocks Puedes instalar el controlador de base de datos que necesites.

Métodos de instalación de 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"

Instalación de LuaRocks en la ventana:https://github.com/keplerproject/luarocks/wiki/Installation-instructions-for-Windows

Instalar diferentes controladores de bases de datos:

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

También puede usar el método de instalación de código fuente, la dirección del código fuente de Lua en Github:https://github.com/keplerproject/luasql

Conectar a la base de datos MySql con Lua:

require "luasql.mysql"
--5.2 Después de la versión, require ya no define variables globales, es necesario guardar su valor de retorno.
--Es necesario escribir:
--luasql = require "luasql.mysql"
--Crear el objeto de entorno
env = luasql.mysql()
--Conectar a la base de datos
conn = env:connect("Nombre de la base de datos", "Nombre de usuario", "Contraseña", "Dirección IP", puerto)
--Establecer el formato de codificación de la base de datos
conn:execute"SET NAMES UTF8"
--Ejecutar operaciones de base de datos
cur = conn:execute("select * from role)
row = cur:fetch({}, "a")
--Creación del objeto de archivo
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()  --Cerrar el objeto de archivo
conn:close()  --Cerrar la conexión de la base de datos
env:close()   --Cerrar el entorno de la base de datos