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

文章介绍了如何使用Lua的skynet.db.mysqlAPI来连接和操作Mysql数据库。首先讲解了MysqlAPI中的connect和query方法,然后提供了一个示例程序,该程序创建了一个main_mysql.lua文件,用于连接数据库、插入数据到message表以及查询并打印所有记录。最后提到了配置文件config_mysql的内容,并展示了运行程序的结果。
摘要由CSDN通过智能技术生成

        在上一篇中我们完成了对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) do
        print ( 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是因为我之前已经测试了一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值