前言
本篇介绍,在luasql.mysql库下利用lua去操作mysql
环境
-
lua:5.1.5
-
外部库:luasql.mysql
安装luasql.mysql需要用到lua包管理luarocks,luarocks的安装和luasql的安装都可以看博主前边的文章。
操作MySql
链接
- 引入外部库
local luasql = require "luasql.mysql"
- 创建实例
local l_sql = luasql.mysql()
- 链接数据库
local conn_sql = l_sql:connect(数据库名,账号,密码,IP,端口)
-- 例
local conn_sql = l_sql:connect("Sun","root","","localhost",3306)
print(conn_sql)
可以通过print来看是否链接成功,链接失败conn_sql返回的是个nil
执行语句
- lua_sql的执行语句
status, errorString = conn_sql:execute(cmd);
luasql提供了一个简单的execute方法来执行所有的MySql命令,任意的MySql命令都可以直接执行,返回两个参数
status:如果命令执行正确,status存在,是一个类或者具体数,执行失败返回nil
errorString:如果命令执行正确返回nil,执行失败返回错误信息
增删改查
- 增
-- 增加数据
local insertCmd = string.format("insert into %s values('%s','%s')",table_name,key,datas)
status,errorString = conn_sql:execute(insertCmd);
- 删
-- 删除数据
local delCmd = string.format("DELETE FROM %s WHERE `id` LIKE '%s'",table_name,key)
status,errorString = conn_sql:execute(delCmd);
- 改
-- 更新数据
local updateCmd = string.format("UPDATE %s SET `id`='%s',`data`='%s' WHERE `id` LIKE '%s'",table_name,"aaaa","bbbb",key)
status,errorString = conn_sql:execute(updateCmd);
- 查
-- 查找单一数据
local serchCmd = string.format("SELECT * FROM %s WHERE `id` LIKE '%s'",table_name,key)
status,errorString = conn_sql:execute(serchCmd);
result = status:fetch({},"a");
print(result.id)
print(result.data)
-- 查找多条数据
local serchCmd = string.format("SELECT * FROM %s WHERE `id` LIKE '%s'",table_name,key)
status,errorString = conn_sql:execute(serchCmd);
result = status:fetch({},"a");
while result do
print(result.id)
print(result.data)
result = status:fetch(result,"a")
end
推送
- linux上lua版本的替换和luasocket的安装和使用
https://blog.csdn.net/Mr_Sun88/article/details/126032170
- linux上手动安装luasql的包(centos7)
https://blog.csdn.net/Mr_Sun88/article/details/126062278
- Github
https://github.com/KingSun5
结语
希望看到最后的同学有所收获,若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
QQ交流群:806091680(Chinar)
该群为CSDN博主Chinar所创,推荐一下!我也在群里!
本文属于原创文章,转载请著名作者出处并置顶!!