| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | 
							- mg.write("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n")
 
- mg.write([[<html>
 
- <head>
 
- <title>Lua SQLite database test</title>
 
- <style>
 
- table, th, td {
 
-     border: 1px solid black;
 
-     border-collapse: collapse;
 
-     border-spacing: 5px;
 
- }
 
- th, td {
 
-     padding: 5px;
 
-     text-align: left;    
 
- }
 
- </style>
 
- </head>
 
- <body>
 
- <p>This is Lua script example 1, served by the
 
- <a href="https://github.com/civetweb/civetweb">CivetWeb web server</a>,
 
- version ]] .. mg.version .. [[.
 
- </p><p>
 
- The following features are available:
 
- <ul>
 
- ]])
 
-   mg.write('<li><a href="http://www.lua.org/docs.html">' .. _VERSION .. "</a> server pages</li>")
 
-   if sqlite3 then
 
-     mg.write('<li><a href="http://lua.sqlite.org/index.cgi/doc/tip/doc/lsqlite3.wiki">sqlite3</a> binding</li>')
 
-   end
 
-   if lfs then
 
-     mg.write('<li><a href="https://keplerproject.github.io/luafilesystem/manual.html">lua file system</a></li>')
 
-   end
 
-   
 
- mg.write("</ul></p>\r\n")
 
- mg.write("<p> Today is " .. os.date("%A") .. "</p>\r\n")
 
- mg.write("<p> URI is " .. mg.request_info.uri .. "</p>\r\n")
 
- mg.write("<p>\r\n<pre>\r\n")
 
- -- Open database
 
- local db, errcode, errmsg = sqlite3.open('requests.db')
 
- if db then
 
-   -- Note that the data base is located in the current working directory
 
-   -- of the process if no other path is given here.
 
-   -- Setup a trace callback, to show SQL statements we'll be executing.
 
-   -- db:trace(function(data, sql) mg.write('Executing: ', sql: '\n') end, nil)
 
-   -- Create a table if it is not created already
 
-   db:exec([[
 
-     CREATE TABLE IF NOT EXISTS requests (
 
-       id INTEGER PRIMARY KEY AUTOINCREMENT,
 
-       timestamp NOT NULL,
 
-       method NOT NULL,
 
-       uri NOT NULL,
 
-       addr,
 
-       civetwebversion,
 
-       luaversion,
 
-       aux
 
-     );
 
-   ]])
 
-   -- Add colums to table created with older version
 
-   db:exec("ALTER TABLE requests ADD COLUMN civetwebversion;")
 
-   db:exec("ALTER TABLE requests ADD COLUMN luaversion;")
 
-   db:exec("ALTER TABLE requests ADD COLUMN aux;")
 
-   -- Add entry about this request
 
-   local stmt = db:prepare(
 
-     'INSERT INTO requests VALUES(NULL, datetime("now"), ?, ?, ?, ?, ?, ?);');
 
-   stmt:bind_values(mg.request_info.request_method,
 
-                    mg.request_info.uri,
 
-                    mg.request_info.remote_port,
 
-                    mg.version,
 
-                    _VERSION,
 
-                    ""
 
-                    )
 
-   stmt:step()
 
-   stmt:finalize()
 
-   -- Show all previous records
 
-   mg.write('<table>\n')
 
-   mg.write("<tr>\n")
 
-   mg.write("<th>id</th>\n")
 
-   mg.write("<th>timestamp</th>\n")
 
-   mg.write("<th>method</th>\n")
 
-   mg.write("<th>uri</th>\n")
 
-   mg.write("<th>addr</th>\n")
 
-   mg.write("<th>civetweb</th>\n")
 
-   mg.write("<th>lua</th>\n")
 
-   mg.write("<th>aux</th>\n")
 
-   mg.write("</tr>\n")
 
-   stmt = db:prepare('SELECT * FROM requests ORDER BY id DESC;')
 
-   while stmt:step() == sqlite3.ROW do
 
-     local v = stmt:get_values()
 
-     mg.write("<tr>\n")
 
-     local i = 1
 
-     while (v[i]) do
 
-       mg.write("<td>" .. v[i] .. "</td>\n")
 
-       i = i+1
 
-     end
 
-     mg.write("</tr>\n")
 
-   end
 
-   mg.write("</table>\n")
 
-   -- Close database
 
-   db:close()
 
- else
 
-   mg.write("DB error:\n")
 
-   mg.write("code = " .. tostring(errcode) .. "\n")
 
-   mg.write("msg = " .. tostring(msg) .. "\n")
 
- end
 
- mg.write([[
 
- </pre>
 
- </p>
 
- </body>
 
- </html>
 
- ]])
 
 
  |