Lua数据库/MySQL操作
对于简单的数据操作,我们可以使用文件,但是,有时候这些文件操作效率不高,可扩展性和强大不好。所以我们可能会经常切换到使用数据库。 LuaSQL是从Lua一些数据库管理系统的一个简单的接口。 LuaSQL它提供了对不同类型的SQL支持库。这包括:
在本教程中,将涵盖Lua中的SQLite和MySQL数据库处理。使用这个通用接口为应尽可能实施于其它类型的数据库。首先,让我们看看如何在MySQL中执行操作。 MySQL数据库的设置以使用下面的示例以预期方式工作,我们所需要的初始数据库设置。假设如下面列出:
导入MySQL我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成。在安装过程中,文件夹libsql包含数据库相关的文件。 mysql = require "luasql.mysql" 可变的MySQL将提供通过参照主MySQL表访问该功能。 建立连接我们可以设立一个启动MySQL的环境,然后创建环境的连接。如下所示。 local env mysql.mysql() conn env:connect('test','root''123456') 上面的连接将连接到现有的MySQL文件并建立与新创建的文件的连接。 执行函数这将有助于我们做的创建,插入,删除,更新等,所有的数据库操作执行简单的功能。语法如下所示 connexecute([['MySQLSTATEMENT' ]]) 在上面的语法,我们需要确保conn是开放的和现有的MySQL连接并替换“MySQLSTATEMENT”使用正确的语句。 创建表的例子一个简单的创建表的示例如下所示。它创建类型为int和varchar类型,两个参数ID和name的表。 mysql "luasql.mysql" )print(env statuserrorString connCREATE TABLE sample2 id INTEGER name TEXT);]])status 当运行上面的程序,表名为sample将有两列分别是id和name会被创建。MySQL environment (004BB178) MySQL connection (004BE3C8) 0 nil Update语句的例子对于MySQL UPDATE语句如下所示。 UPDATE sample3 SET name='John'where id '12']]) 删除Delete 语句的例子DELETE语句-MySQL如下所示。 DELETE from sample3 Select语句的例子 在上面的代码中,conn 是一个开放的MySQL连接。由执行语句返回游标,可以通过表的反应返回获取所需的选择数据。 一个完整的例子所有上述声明一个完整的例子给出下面的参考。 CREATE TABLE sample3 )]])INSERT INTO sample3 values cursor sample3errorString row row end close everything cursorclose conn env() 当运行上面的程序,会得到如下的输出。 MySQL environment (0037B178) MySQL connection (0037EBA8) 0 nil 1 nil MySQL cursor (003778A8) nil Id: 12,Name: Raj 执行事务:事务是确保数据一致性的机制。事务应该具有以下四个特性:
事务开始START TRANSACTION;和commit或rollback语句结束。 开始事务为了启动一个事务,我们需要执行在Lua下面执行语句,假设conn是一个开放的MySQL连接。 START TRANSACTION;]])
回滚事务我们需要做执行下面的语句来回滚执行开始事务后所做的更改。 ROLLBACK 提交事务 我们已经在上面知道关于MySQL和下节介绍基本的SQL操作。请记住事务,但sqlite3不会再解释了,但相同的语句在sqlite3也能正常工作。 SQLite导入sqlite3 "luasql.sqlite3" 变量sqlite3将提供通过参照主sqlite3表访问该功能。 我们成立了发起sqlite环境,然后创建环境的连接。它如下所示。
有可用的,这将有助于我们执行创建,插入,删除,更新等,所有的数据库操作基于连接执行简单的功能。语法如下所示
在上面的语法,我们需要确保conn是开放的及现有的sqlite3连接,代替“SQLite3STATEMENT”使用正确的语句。
|