Http服务器-第九步lua编写留言板demo
示例地址 www.dreamyouxi.com 中的留言
github: https://github.com/dreamyouxi/LiteHttp
c++吧数据库接口写好后,给lua用,然后添加lua 支持库
sql.lua
local t={}; t.config=require("sql_config"); --create a sql obj for lua function t:create() return SQL_Script_create(); end -- connect the ins to mysql function t:connect(ins) local c=t.config; local bool = SQL_Script_connect(ins,c.host , c.port , c.user , c.pwd , c.db); return bool; end --release res function t:release(ins) SQL_Script_release(ins); end --exec sql function t:execute(ins,encoding,sql,col_count) local t={ SQL_Script_execute(ins,encoding,sql,col_count)}; if col_count == 0 then if t[1] == "OK" then return "OK"; else return nil; end end return t; end return t;
MsgBoard.lua
local t={}; local suc_str= "<html lang='en'><head><meta charset='utf-8'><meta http-equiv='refresh'content='1;url=list.html'> </head><body><p>留言成功,自动跳转中......</p></body></html>"; local function makeMsg(name,txt,time) local ret="<p>"; ret = ret .. os.date("%Y-%m-%d %H:%M",time ) .." " ; ret = ret .. name .. " 说:" ; ret = ret .. txt; ret =ret .. "</p>" return ret; end function t:doRequest(p) local name = p["name"]; local msg= p["msg"]; if p["list"]~=nil then local ret=""; -- ret =ret .. makeMsg("7:20","张3532532535三","哈啊哈"); local ins = sql:create(); sql:connect(ins); local t= sql:execute(ins, "UTF8" ,"select name,msg,time from msg order by time DESC" ,3); local len = table.getn(t); for i=1 , len,3 do ret = ret .. makeMsg(t[i],t[i+1],t[i+2]) end sql:release(ins); return packCustomHtmlData(ret) end if name == nil or name == "" then return packCustomHtmlData("昵称不能为空"); end if msg == nil or msg == "" then return packCustomHtmlData("内容不能为空") end name= skipWhite(name); msg=skipWhite(msg) print( "msg ".. name .. " " .. msg ); local ins = sql:create(); sql:connect(ins); local t= sql:execute(ins,"GB2312","INSERT INTO msg VALUES(\"" .. name .. "\",\"".. msg .."\",".. (os.time()) ..")" ,0); --local t= sql:execute(ins,"INSERT INTO msg VALUES(\"1\",\"2\",\"3\") " ,0); sql:release(ins); if t ~= nil then return suc_str; end return packCustomHtmlData( "留言失败" ); -- return " welcome MsgBoard " end return t;