mirror of
https://github.com/Kakune55/Pixel.git
synced 2025-05-07 02:39:25 +08:00
220 lines
3.7 KiB
Go
220 lines
3.7 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,
|
|
ext TEXT NOT NULL
|
|
);
|
|
CREATE TABLE IF NOT EXISTS user (
|
|
uname TEXT PRIMARY KEY,
|
|
password TEXT NOT NULL
|
|
);
|
|
`
|
|
|
|
_, err = db.Exec(createTableSQL)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func NewFile(linkID string, md5 string, ext 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" ,"ext") VALUES (?, ? , ?)
|
|
`
|
|
|
|
stmt, err := db.Prepare(SQL)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
_, err = stmt.Exec(linkID,md5,ext) //插入记录
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func GetFileName(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
|
|
var ext string
|
|
err = row.Scan(&linkIDx,&md5,&ext)
|
|
if err != nil {
|
|
if err == sql.ErrNoRows {
|
|
return ""
|
|
} else {
|
|
log.Fatal(err)
|
|
}
|
|
return ""
|
|
}
|
|
return md5+ext
|
|
}
|
|
|
|
func QueryId() ([]string, error) {
|
|
var result []string
|
|
|
|
db, err := sql.Open("sqlite3", "./data/database.db")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
|
|
rows, err := db.Query("SELECT link FROM mytable")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
|
var name string
|
|
if err := rows.Scan(&name); err != nil {
|
|
return nil, err
|
|
}
|
|
result = append(result, name)
|
|
}
|
|
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return result, nil
|
|
}
|
|
|
|
func DelFile(linkID string) {
|
|
db, err := sql.Open("sqlite3", "./data/database.db")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
|
|
// SQL语句
|
|
SQL := `
|
|
DELETE FROM "mytable" WHERE link = ?
|
|
`
|
|
|
|
stmt, err := db.Prepare(SQL)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
_, err = stmt.Exec(linkID) //插入记录
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func NewUser(uname string, password string) {
|
|
db, err := sql.Open("sqlite3", "./data/database.db")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
|
|
// SQL语句
|
|
SQL := `
|
|
INSERT INTO "user" ("uname" ,"password") VALUES (? , ?)
|
|
`
|
|
|
|
stmt, err := db.Prepare(SQL)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
_, err = stmt.Exec(uname, password) //插入记录
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func QueryUser() ([]string, error) {
|
|
var result []string
|
|
|
|
db, err := sql.Open("sqlite3", "./data/database.db")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
|
|
rows, err := db.Query("SELECT uname FROM user")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
|
var name string
|
|
if err := rows.Scan(&name); err != nil {
|
|
return nil, err
|
|
}
|
|
result = append(result, name)
|
|
}
|
|
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return result, nil
|
|
}
|
|
|
|
func CheckUserPasswd(username string, password string) bool {
|
|
// 连接到SQLite数据库
|
|
db, err := sql.Open("sqlite3", "./data/database.db")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
// 查询用户名和密码
|
|
const sqlStr = "SELECT * FROM 'user' WHERE uname=? AND password=?"
|
|
// 执行查询
|
|
rows, err := db.Query(sqlStr, username, password)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer rows.Close()
|
|
// 判断查询结果
|
|
if rows.Next() {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|