1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
--
-- rhnop
--
-- Copyright (C) 2011-2015 Christian Pointner <equinox@helsinki.at>
--
-- This file is part of rhnop.
--
-- rhnop is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- any later version.
--
-- rhnop is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with rhnop. If not, see <http://www.gnu.org/licenses/>.
--
luasql = require "luasql.mysql"
local rddb = {}
function rddb:init(conf)
local err
self.env, err = luasql.mysql()
if self.env == nil then
return nil, err
end
self.con, err = self.env:connect(conf.rddb_db, conf.rddb_user, conf.rddb_pwd, conf.rddb_host, conf.rddb_port)
if self.con == nil then
return nil, err
end
local ret, err = self.con:execute("SET CHARACTER SET utf8")
if ret == nil then
return nil, err
end
return true
end
function rddb:getCartInfo(cartnum)
local cur, err = self.con:execute("select TITLE,ARTIST,ALBUM from CART where NUMBER = " .. self.con:escape(cartnum))
if cur == nil then
return nil, err
end
if cur:numrows() ~= 1 then
return nil, "nothing found in rivendell db"
end
local results = {}
results, err = cur:fetch(results, "a")
cur:close()
if results.TITLE == nil then results.TITLE = "" end
if results.ARTIST == nil then results.ARTIST = "" end
if results.ALBUM == nil then results.ALBUM = "" end
return results, err
end
function rddb:close()
if self.con then
self.con:close()
end
if self.env then
self.env:close()
end
end
return rddb
|