-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.go
More file actions
40 lines (36 loc) · 862 Bytes
/
database.go
File metadata and controls
40 lines (36 loc) · 862 Bytes
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
package dbilling_pinmanagement
import (
"database/sql"
"strings"
)
func HandleError(e error) {
if e != nil {
panic(e)
}
}
func GetPinInfo(db *sql.DB, pin ...string) []Pin {
var res *sql.Rows
var err error
if len(pin) == 0 {
res, err = db.Query("SELECT * FROM pin;")
} else if len(pin) == 1 {
res, err = db.Query("SELECT * FROM pin WHERE pin=?;", pin[0])
} else {
query_arg := ""
for i, end := 0, len(pin); i < end; i++ {
query_arg += "'" + strings.ReplaceAll(pin[i], "'", "") + "',"
}
query_arg = query_arg[:len(query_arg)-1]
res, err = db.Query("SELECT * FROM pin WHERE pin IN(?);", query_arg)
}
HandleError(err)
defer res.Close()
var rows []Pin
var row Pin
for res.Next() {
err = res.Scan(&row.Id, &row.Pin, &row.MinutesPerMonth, &row.UserId, &row.Status)
HandleError(err)
rows = append(rows, row)
}
return rows
}