游戏服务端另一项重要功能是保存玩家数据,Skynet提供了操作Mysql、MongoDB数据库的模块。
功能需求
如图所示,客户端发送 set XXX
命令时,程序会把留言 XXX
存入数据库,发送 get
命令时,程序会把整个留言板返回给客户端。
![]()
数据库模块
skynet.db.mysql
模块提供操作MYSQL数据库的方法。
Lua API |
说 明 |
mysql.connect(args) |
连接数据库,参数 args 是一个Lua表,包含数据库地址、用户名、密码等信息,API会返回数据库对象,用于后续操作
例如
local db = mysql.connect({
host="127.0.0.1",
port=3306,
database="message_board",
user="root",
password="12345678",
max_packet_size=1024*1024,
on_connect=nil
})
代表连接地址为 127.0.0.1 、端口为 3306 、数据库名为 message_board 、用户名为 root 、密码为 12345678 的数据库
|
db:query(sql) |
执行SQL语句。db代表 mysql.connect 返回的对象,参数 sql 代表 SQL语句
例如
local res = db:query("select * from msgs")
代表查询数据表,返回值 res 代表查询的结果
db:query("insert into msgs (text) values (\'hello\')")
代表把字符串 hello 插入msgs 表的text 栏位
|