[英]I want to make a function that get data from some columns
i've created the code, but its not completed.Could anyone help me to complete the code?我已经创建了代码,但还没有完成。有人可以帮我完成代码吗? or how the complete code looks like.Language im using is Go and the database is PostgreSQL
或者完整代码的样子。我使用的语言是 Go,数据库是 PostgreSQL
func (m *rg) GetAllRegional(filter map[string]interface{}) ([]*model.Regional, int64, error) {
query := `SELECT
title,
language,
isviewmain
FROM Regional`
stmt, err := m.DB.Prepare(query)
if err != nil {
log.Println(err)
return nil, err
}
return nil, -1, nil
}
here's a link to a previous answer: (GoLANG) *sql.DB Scan rows into string array pointer这是指向先前答案的链接: (GoLANG) *sql.DB Scan rows into string array pointer
Edit: Here's an example that's a more similar to your example.编辑:这是一个与您的示例更相似的示例。
This is for mariaDB btw, make sure to change the connection string and sql.Open
to postgreSQL这是 mariaDB 顺便说一下,确保更改连接字符串和
sql.Open
到 postgreSQL
type rg struct {
DB *sql.DB
}
func init() {
// fill it with your info
db, err := connect("testDB" /* DB */, "testUser" /* DbUser */, "testPass" /* DbPw */)
if err != nil {
log.Fatal(err)
}
filter := map[string]interface{}{}
r, i, err := db.GetAllRegional(filter)
if err != nil {
log.Fatal(err)
}
log.Printf("r: %+v\ni: %+v\n", r, i)
}
// connect returns a rg
func connect(dbName, username, password string) (rg, error) {
cs := username + ":" + password + "@tcp(" + "YourDbHost" + ":3306)/" + dbName
db, err := sql.Open("mysql", cs)
if err != nil {
log.Println(err.Error())
return rg{}, err
}
return rg{db}, nil
}
// GetAllRegional ...
func (m *rg) GetAllRegional(filter map[string]interface{}) ([]string, int64, error) {
// checking if the connection is alive
err := m.DB.Ping()
if err != nil {
log.Fatal(err)
return nil, 0, err
}
q := `SELECT title, language, isviewmain FROM Regional`
rows, err := m.DB.Query(q)
if err != nil {
log.Fatal(err)
return nil, 0, err
}
defer rows.Close()
// Not sure what you're returning on the model
// returning a slice instead
var regional []string
for rows.Next() {
var temp string
err = rows.Scan(&temp)
if err != nil {
log.Println(err.Error())
if err == sql.ErrNoRows {
log.Println(sql.ErrNoRows.Error())
}
return nil, 0, err
}
regional = append(regional, temp)
}
return regional, 1, nil
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.