summaryrefslogtreecommitdiffstats
path: root/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'db.go')
-rw-r--r--db.go60
1 files changed, 60 insertions, 0 deletions
diff --git a/db.go b/db.go
new file mode 100644
index 0000000..f161c54
--- /dev/null
+++ b/db.go
@@ -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
+}