Advertisement
Guest User

Untitled

a guest
Jan 2nd, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.06 KB | None | 0 0
  1. db = {}
  2.  
  3. local db_name = "test"
  4. local db_user = "root"
  5. local db_pass = ""
  6. local db_host = "localhost"
  7.  
  8. function logerror(err)
  9.     if err then
  10.         file = io.open("error.log", "a")
  11.         file:write(string.format("%s %s\n", os.date("%Y/%m/%d %H:%M:%S"), err))
  12.         file:close()
  13.     end
  14. end
  15.  
  16. function log2file(str)
  17.     file = io.open("test.log", "a")
  18.     file:write(str .. "\n")
  19.     file:close()
  20. end
  21.  
  22. -- load luasql.dll
  23. local luasql = require("luasql.mysql")
  24.  
  25. -- set connection to database
  26. db.env = luasql.mysql()
  27. db.con, err = db.env:connect(db_name, db_user, db_pass, db_host)
  28. logerror(err)
  29.  
  30. -- some connection settings
  31. sql = "SET NAMES 'utf8'"
  32. res, err = db.con:execute(sql)
  33. logerror(err)
  34.  
  35. sql = "SET COLLATION_CONNECTION='utf8_general_ci'"
  36. res, err = db.con:execute(sql)
  37. logerror(err)
  38.  
  39. -- try to delete table
  40. sql = "DROP TABLE people"
  41. res, err = db.con:execute(sql)
  42. logerror(err)
  43.  
  44. -- try to create the new table
  45. sql = "CREATE TABLE people(name varchar(50), email varchar(50))"
  46. res, err = db.con:execute(sql)
  47. logerror(err)
  48.  
  49.  
  50. -- add a few elements
  51. list = {
  52.     { name="Jose das Couves", email="jose@couves.com", },
  53.     { name="Manoel Joaquim", email="manoel.joaquim@cafundo.com", },
  54.     { name="Maria das Dores", email="maria@dores.com", },
  55. }
  56. for i, p in pairs (list) do
  57.     sql = string.format("INSERT INTO people VALUES ('%s', '%s')", p.name, p.email)
  58.     res, err = db.con:execute(sql)
  59.     logerror(err)
  60.     log2file("inserted " .. res)
  61. end
  62.  
  63. -- read added elements from database
  64. log2file("reading from database")
  65.  
  66. -- retrieve a cursor
  67. sql = "SELECT name, email from people"
  68. cur, err = db.con:execute(sql)
  69. logerror(err)
  70.  
  71. -- write all rows in the log
  72. row = cur:fetch ({}, "a")   -- the rows will be indexed by field names
  73. while row do
  74.     log2file(string.format("Name: %s, E-mail: %s", row.name, row.email))
  75.     row = cur:fetch (row, "a")  -- reusing the table of results
  76. end
  77.  
  78. -- close cursor
  79. cur:close()
  80.  
  81. -- close connection and environment
  82. db.con:close()
  83. db.env:close()
  84.  
  85. function prompt_read(prompt)
  86.     print(prompt)
  87.     return io.read()
  88. end
  89.  
  90. prompt_read("Press any key")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement