| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package main
- import (
- mysql "github.com/Philio/GoMySQL"
- "os"
- "log"
- )
- var dbPool chan *mysql.Client
- func initDb() {
- log.SetFlags(log.Ltime | log.Lshortfile)
- const dbPoolSize = 4
- dbPool = make(chan *mysql.Client, 4)
- for i := 0; i < dbPoolSize; i++ {
- db, err := mysql.DialTCP("localhost", "audio", "audio", "audio")
- if err != nil {
- log.Panicln(err)
- }
- db.Reconnect = true
- dbPool <- db
- }
- }
- func prepare(db *mysql.Client, sql string, params ...interface{}) (*mysql.Statement, os.Error) {
- query, err := db.Prepare(sql)
- if err != nil {
- log.Println(err)
- return nil, err
- }
- err = query.BindParams(params...)
- if err != nil {
- log.Println(err)
- return nil, err
- }
- err = query.Execute()
- if err != nil {
- log.Println(err)
- return nil, err
- }
- return query, err
- }
- func queryInt(db *mysql.Client, sql string, params ...interface{}) (int, os.Error) {
- query, err := prepare(db, sql, params...)
- if err != nil {
- return 0, err
- }
- var result int
- query.BindResult(&result)
- eof, err := query.Fetch()
- if err != nil {
- log.Println(err)
- return result, err
- } else if eof {
- return result, os.EOF
- }
- err = query.FreeResult()
- if err != nil {
- log.Println(err)
- return result, err
- }
- return result, err
- }
- // given an id ('abcd1234'), return the pid (1)
- func getpid(db *mysql.Client, id string) int {
- pid, err := queryInt(db, "SELECT `pid` FROM `playlist` WHERE `id` = ?", id)
- if err != nil {
- return -1
- }
- return pid
- }
|