首页 > 数据库 >Lua 数据库访问

Lua 数据库访问

时间:2023-06-19 21:58:22浏览次数:48  
标签:luarocks 访问 -- 数据库 luasql Lua row

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"

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

你也可以使用源码安装方式,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()   --关闭数据库环境

5.2 版本之后,require 不再定义全局变量,需要保存其返回值。

require "luasql.mysql"

需要写成:

luasql = require "luasql.mysql"

标签:luarocks,访问,--,数据库,luasql,Lua,row
From: https://www.cnblogs.com/hcgk/p/17492286.html

相关文章

  • Lua 错误处理
    Lua错误处理程序运行中错误处理是必要的,在我们进行文件操作,数据转移及webservice调用过程中都会出现不可预期的错误。如果不注重错误信息的处理,就会造成信息泄露,程序无法运行等情况。任何程序语言中,都需要错误处理。错误类型有:语法错误运行错误语法错误语法错误通常......
  • Lua 调试
    Lua调试(Debug)Lua提供了debug库用于提供创建我们自定义调试器的功能。Lua本身并未有内置的调试器,但很多开发者共享了他们的Lua调试器代码。Lua中debug库包含以下函数:序号方法&用途1.debug():进入一个用户交互模式,运行用户输入的每个字符串。使用简单......
  • Lua 垃圾回收
    Lua垃圾回收Lua采用了自动内存管理。这意味着你不用操心新创建的对象需要的内存如何分配出来,也不用考虑在对象不再被使用后怎样释放它们所占用的内存。Lua运行了一个垃圾收集器来收集所有死对象(即在Lua中不可能再访问到的对象)来完成自动内存管理的工作。Lua中所有用到......
  • Lua 面向对象
    Lua面向对象面向对象编程(ObjectOrientedProgramming,OOP)是一种非常流行的计算机编程架构。以下几种编程语言都支持面向对象编程:所谓的面向对象不过是把数据结构的组织,把零散的方法和变量封装成一个整体,组件化从而可以组建成更加庞大的体系构建世界万物。不要过度迷信面向对......
  • Lua 文件
    Lua文件I/Olua常用的就是内存操作,和redis,mysql,kafka中间件打通。LuaI/O库用于读取和处理文件。分为简单模式(和C一样)、完全模式。简单模式(simplemodel)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。完全模式(completemodel)使用外部的文件句......
  • Lua 元表
    Lua元表(Metatable)在Luatable中我们可以访问对应的key来得到value值,但是却无法对两个table进行操作(比如相加)。因此Lua提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。例如,使用元表我们可以定义Lua如何计算两个table的相加操作......
  • Lua 协同程序
    Lua协同程序(coroutine)目前来说基本用不到,暂时记录什么是协同(coroutine)?Lua协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程......
  • Lua 模块与包
    Lua模块与包模块类似于一个封装库,从Lua5.1开始,Lua加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以API接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。Lua的模块是由变量、函数等已知元素组成的table,因此创建一个模块很简单,就是创建一......
  • 83SR06B-E把流经端口的异常流量限制在一定的范围内。访问控制列表(ACL)技术
    83SR06B-E把流经端口的异常流量限制在一定的范围内。访问控制列表(ACL)技术83SR06B-E把流经端口的异常流量限制在一定的范围内。访问控制列表(ACL)技术  目前信息层网络采用的交换机安全技术主要包括以下几种。流量控制技术,把流经端口的异常流量限制在一定的范围内。访问控......
  • DB 从关闭数据库 看看你在那个LEVEL
    关闭数据库,呵呵,看上去没有什么可以说的,或者说没有什么技术含量,属于只要脖子上有一双带眼睛的脑袋就可以进行操作.事实是这样的吗?  关闭数据库看似简单的事情也能给评出个  369等的LEVEL.什么LEVEL 从关闭数据库中体现你对整体数据库系统操作和认知的LEVEL到底有没有......