function dodbquery(dbname,q)
local mysql = require"resty.mysql"
local db = mysql:new()
db:set_timeout(1000)
local ok,err,errno,sqlstate = db:connect{
host = "127.0.0.1",
port = 3306,
database = "nginxreport",
user = "root",
password = ""}
if not ok then
ngx.say("failed to connect mysql:",err,":",errno," ",sqlstate)
return
end
local res,err,errno,sqlstate = db:query(q)
if not res then
ngx.say("bad result",err,":",errno,":",sqlstate,".")
return
end
return res
end
function getcount()
local query="select ku6 from request_num where rowid = '3'"
local res = dodbquery("nginxreport",query)
local result = getcount()
if not result then
ngx.say("failed")
return
end
return result
end
local re = getcount()
ngx.say("result =",result)
不知道为什么会循环运行getcount(),一直报错,
Too many connections ,报1040的错误。
还有,我想设置一个redis,用来存储数据库的数据,添加了以下两个函数,不过编译不通过
function setredis(key,value)
local redis = require"resty.redis"
local red = redis:new()
red:set_timeout(1000)
local ok,err = red:connect("127.0.0.1",6379)
if not ok then
ngx.say("failed to connect redis:",err)
return
end
local res,err = red:set(key,value)
if not res then
ngx.say("failed to set:",err)
return
end
ngx.say("set ",key,"value=",value)
end
function find(key)
local redis = require"resty.redis"
local red = redis:new()
red:set_timeout(1000)
local ok,err = red:connect("127.0.0.1",6379)
if not ok then
ngx.say("failed to connect redis:",err)
return
end
local res,err = red:get(key)
if not res then
ngx.say("failed to get:",err)
return
end
if res == ngx.null then
ngx.say("not found,you can find it in dababase!")
local value = getcount(key)
setredis(key,value)
return
end
end
求大神指导,我也刚开始学LUA