Untitled
By: a guest | Mar 20th, 2010 | Syntax:
None | Size: 1.90 KB | Hits: 107 | Expires: Never
func insert_last_message(dbh *mysql.MySQLInstance, nick, message string) (err os.Error) {
fmt.Printf("a\n")
if row, err := last_message(dbh, nick); err != nil {
fmt.Printf("b\n")
return err
} else if row == nil {
fmt.Printf("c: %v\n", row)
_, err := dbh.Query(fmt.Sprintf("INSERT INTO last_message (nick, message) VALUES ('%s', '%s')", nick, message))
return err
} else if row != nil {
fmt.Printf("d\n")
_, err := dbh.Query(fmt.Sprintf("UPDATE last_message SET message = '%s' WHERE name = '%s'", message, nick))
return err
}
fmt.Printf("e\n")
return nil
}
func last_message(dbh *mysql.MySQLInstance, nick string) (row map[string]string, err os.Error) {
fmt.Printf("last message called\n")
res, err := dbh.Query(fmt.Sprintf("SELECT * FROM last_message WHERE name = '%s'", nick))
if err != nil {
fmt.Fprintf(os.Stderr, "mysql: %s\n", err.String())
return nil, err
}
return res.FetchRowMap(), nil
}
func main () {
var err os.Error
dbh, err := mysql.Connect("tcp", "", "127.0.0.1:3306", "zedbot", "password", "zedbot")
if err != nil {
fmt.Fprintf(os.Stderr, "mysql: %s", err.String())
os.Exit(1)
}
if _, err := dbh.Use("zedbot"); err != nil {
fmt.Fprintf(os.Stderr, "mysql: %s", err.String())
os.Exit(1)
}
if err := insert_last_message(dbh, "samuel", "updated for testing"); err != nil {
fmt.Fprintf(os.Stderr, "mysql: %s\n", err.String())
os.Exit(1)
}
fmt.Printf("2\n")
if row, err := last_message(dbh, "samuel"); err != nil {
fmt.Fprintf(os.Stderr, "mysql: %s\n", err.String())
os.Exit(1)
} else if row != nil {
fmt.Printf("%s <%s> %s\n", row["time"], row["name"], row["message"])
}
fmt.Printf("3\n")
if row, err := last_message(dbh, "frank"); err != nil {
fmt.Fprintf(os.Stderr, "mysql: %s\n", err.String())
os.Exit(1)
} else if row != nil {
fmt.Printf("%s <%s> %s\n", row["time"], row["name"], row["message"])
}
}