> 文章列表 > 【从零开始学Skynet】基础篇(七):Mysql数据库常用API

【从零开始学Skynet】基础篇(七):Mysql数据库常用API

【从零开始学Skynet】基础篇(七):Mysql数据库常用API

        在上一篇中我们完成了对Mysql数据库的准备工作之后,这一篇我们写一个程序测试一下。

1、Mysql API

        在写程序之前,我们先学习一下Mysql数据库常用API的使用:

API 说明
mysql.connet(args) 连接数据库,参数args是一个Lua表,包含数据库地址、用户名、密码等信息,会返回数据库对象,用于后续操作。
db:query(sql) 执行SQL语句,db表示mysql.connet返回的对象,参数sql表示SQL语句。

2、代码测试

       我们学完API之后,写个小程序测试数据库能否读写成功。
(1)在skynet/examples目录下新建一个main_mysql.lua文件,如果之前有这个文件的话,直接覆盖即可,然后输入如下代码:
local skynet = require "skynet"
local mysql = require "skynet.db.mysql"skynet.start(function()--连接数据库local db=mysql.connect({host="127.0.0.1",port=3306,database="skynet",user="root",password="root",max_packet_size = 1024 * 1024,on_connect = nil})--插入local res = db:query("insert into message (content) values(\\'hello\\')")--查询res = db:query("select * from message")--打印for i,v in pairs(res) doprint ( i," ",v.id, " ",v.content)end
end)
  • 调用mysql.connect连接MySQL,并使用skynet数据库;
  • 使用db:query("insert ...")“message”表中插入一条数据,在“content”字段插入字符串“hello”
  • 使用db:query("select ...")查询数据库,将结果保存到res中,遍历它并打印出来。

 (2)在skynet/examples目录下新建一个config_mysql配置文件:

root = "./"
thread = 8
logger = nil
harbor = 0
start = "main_mysql"	-- main script
bootstrap = "snlua bootstrap"	-- The service for bootstrap
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua"
lualoader = "lualib/loader.lua"
snax = root.."examples/?.lua;"..root.."test/?.lua"
cpath = root.."cservice/?.so"
-- daemon = "./skynet.pid"

3、代码运行

打开终端输入指令:

  • cd skynet
  • ./skynet examples/config_mysql

运行结果如下图所示:

 这里打印了两个hello是因为我之前已经测试了一次。