package main import ( "database/sql" "time" _ "github.com/mattn/go-sqlite3" "log" ) var db *sql.DB func initializeDatabase() { dbo, err := sql.Open("sqlite3", "content") if err != nil { log.Fatal("couldn’t open database. exiting...") return } db = dbo } func writeToDB(post BlogPost) { stmt, _ := db.Prepare("INSERT INTO blogposts(author, content, time) VALUES (?, ?, ?)") stmt.Exec(post.Author, post.Content, time.Now().Unix()) } func readBlogpostsFromDB() []BlogPost { res, err := db.Query("SELECT content, author, time from blogposts limit 50") if err != nil { log.Println("Error reading blogposts", err) return make([]BlogPost, 0) } else { return resultToBlogposts(res) } } func resultToBlogposts(res *sql.Rows) []BlogPost { defer res.Close() entries := make([]BlogPost, 0) for res.Next() { var content, author string var timeInt int64 res.Scan(&content, &author, &timeInt) post := BlogPost{Content:content, Author:author, FTime:time.Unix(timeInt, 0).Format("02.01. 15:04:05")} entries = append(entries, post) } return entries }