diff options
Diffstat (limited to 'db.go')
-rw-r--r-- | db.go | 60 |
1 files changed, 60 insertions, 0 deletions
@@ -0,0 +1,60 @@ +package main + +import ( + "os" +) + +func queryInt(sql string, params ...interface{}) (int, os.Error) { + query, err := db.Prepare(sql) + if err != nil { + return 0, err + } + err = query.BindParams(params...) + if err != nil { + return 0, err + } + err = query.Execute() + if err != nil { + return 0, err + } + var result int + query.BindResult(&result) + eof, err := query.Fetch() + if err != nil { + return 0, err + } else if eof { + return 0, os.EOF + } + err = query.FreeResult() + if err != nil { + return 0, err + } + return result, nil +} + +// given an id ('abcd1234'), return the pid (1) +func getpid(id string) int { + query, err := db.Prepare("SELECT `pid` FROM `playlist` WHERE `id` = ?") + if err != nil { + return -1 + } + err = query.BindParams(id) + if err != nil { + return -1 + } + err = query.Execute() + if err != nil { + return -1 + } + var pid int + query.BindResult(&pid) + _, err = query.Fetch() + if err != nil { + return -1 + } + err = query.FreeResult() + if err != nil { + return -1 + } + return pid +} |