Pixel/database/db.go

84 lines
1.3 KiB
Go

package database
import (
"database/sql"
"log"
_ "github.com/mattn/go-sqlite3"
)
func Initdb() {
db, err := sql.Open("sqlite3", "./data/database.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 创建表的SQL语句
createTableSQL := `
CREATE TABLE IF NOT EXISTS mytable (
link TEXT PRIMARY KEY,
md5 TEXT NOT NULL
);
`
_, err = db.Exec(createTableSQL)
if err != nil {
log.Fatal(err)
}
}
func NewFile(linkID string, md5 string) {
db, err := sql.Open("sqlite3", "./data/database.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// SQL语句
SQL := `
INSERT INTO "main"."mytable" ("link", "md5") VALUES (?, ?)
`
stmt, err := db.Prepare(SQL)
if err != nil {
log.Fatal(err)
}
_, err = stmt.Exec(linkID,md5) //插入记录
if err != nil {
log.Fatal(err)
}
}
func GetFileInfo(linkID string) string {
db, err := sql.Open("sqlite3", "./data/database.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// SQL语句
SQL := `
SELECT * FROM "mytable" WHERE link = ?
`
row := db.QueryRow(SQL,linkID)
if err != nil {
log.Fatal(err)
}
// 扫描查询结果
var md5 string
var linkIDx string
err = row.Scan(&linkIDx,&md5)
if err != nil {
if err == sql.ErrNoRows {
return ""
} else {
log.Fatal(err)
}
return ""
}
return md5
}