local mysql = require "resty.mysql"
local res, err, errno, sqlstate, db;
local connect_table = { host= "127.0.0.1", port= 3306,
database = "test", user = "root", password = ""}
-- 待提交的语句集, 只是举例, 实际statements不能预先确定的
local statements = {
[[UPDATE user SET age = 12 WHERE name = 'tom';]],
[[INSERT INTO user (sex, age, name) VALUES (1, 5, 'liubo');]],
[[SELECT * FROM user;]] ,
}
db, err = mysql:new()--假设初始化成功
db:set_timeout(1000)
res, err, errno, sqlstate = db:connect(connect_table)
for i, stm in ipairs(statements) do
if res == nil then --如果上次查询出错, 则重连
db:connect(connect_table) --假设这里总会成功
end
res, err, errno, sqlstate = db:query(stm)
end
--收尾逻辑, 当最后一个查询成功时才set_keepalive, 否则什么都不做.
if res ~= nil then
db:set_keepalive(10000, 100)
end