Skip to content

Instantly share code, notes, and snippets.

@edib
Created June 28, 2016 14:49
Show Gist options
  • Save edib/092521f6731a710d51df58295daf8114 to your computer and use it in GitHub Desktop.
Save edib/092521f6731a710d51df58295daf8114 to your computer and use it in GitHub Desktop.
package main
import (
"database/sql"
"fmt"
_ "github.com/mattn/go-sqlite3"
"log"
"time"
)
func main() {
db, err := sql.Open("sqlite3", "./phonebook.db")
checkErr(err)
defer db.Close()
sqlStmt := ` CREATE TABLE 'userinfo' ( ` +
`'uid' INTEGER PRIMARY KEY AUTOINCREMENT, ` +
` 'username' VARCHAR(64) NULL, ` +
` 'departname' VARCHAR(64) NULL,` +
` 'created' DATE NULL );
`
_, err = db.Exec(sqlStmt)
if err != nil {
log.Printf("%q\n", err)
}
for {
// insert
stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)")
checkErr(err)
fmt.Println("\nEnter User Name: ")
var value string
fmt.Scanln(&value)
if value == "X" {
return
}
origName := value
fmt.Println("Enter Department: ")
fmt.Scanln(&value)
origDepartment := value
stmt.Exec(origName, origDepartment, time.Now())
// query
rows, err := db.Query("SELECT * FROM userinfo")
checkErr(err)
fmt.Println("ID\t\tUsername\t\tDepartment\t\tCreation Time")
for rows.Next() {
var uid int
var username string
var department string
var created string
err = rows.Scan(&uid, &username, &department, &created)
checkErr(err)
fmt.Printf("%d\t\t%s\t\t%s\t\t%s\n", uid, username, department, created)
}
}
db.Close()
}
func checkErr(err error) {
if err != nil {
log.Fatal(err)
panic(err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment