Lua 数据库访问
精华
小牛编辑
127浏览
2023-03-14
本文主要为大家介绍 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"
Window 下安装 LuaRocks: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地址" ,端口 )
--设置数据库的编码格式
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地址" ,端口 )
--设置数据库的编码格式
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 ( ) --关闭数据库环境