Guest User

Untitled

a guest
Jun 11th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. local mysql = require "resty.mysql"
  2. local M = {}
  3. local function open()
  4. local db,err = mysql:new()
  5. assert(db,err)
  6. local ok,err = db:connect {
  7. host = "127.0.0.1",
  8. user = "root",
  9. password = "123456",
  10. port = 3306,
  11. charset = "utf8",
  12. database = "zscq",
  13. max_packet_size = 1024*1024*20
  14. }
  15. assert(ok,err)
  16. return db
  17. end
  18.  
  19. local function bind_param(sql,p)
  20. local rpl = function(name)
  21. return ngx.quote_sql_str(p[string.sub(name,2)] or name)
  22. end
  23. return string.gsub(sql,"@[%w_]+",rpl)
  24. end
  25.  
  26. function M.query_list(sql,param)
  27. local db = open()
  28. if param then
  29. sql = bind_param(sql,param)
  30. end
  31. local r,err = db:query(sql)
  32. assert(r,err)
  33. return (#r > 0) and r or {}
  34. end
  35.  
  36. function M.query_one(sql,param)
  37. local r = M.query_list(sql,param)
  38. return (#r > 0) and r[1] or nil
  39. end
  40.  
  41. function M.query_nothing(sql,param)
  42. local db = open()
  43. if param then
  44. sql = bind_param(sql,param)
  45. end
  46. local r,err = db:query(sql)
  47. assert(r,err)
  48. return r.affected_rows
  49. end
  50.  
  51. return M
Add Comment
Please, Sign In to add comment