I'm new to golang and I dont get why I can't return a value. I think it's a small mistake. I just want to return a string I picked in a DB.
func myFunction() string {
rows, err := db.Query("SELECT my_string ORDER BY agents_count ASC LIMIT 1;")
if err != nil {
logger.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var my_string string
if err := rows.Scan(&my_string); err != nil {
logger.Fatal(err)
}
logger.Info("Result : ", my_string)
}
if err := rows.Err(); err != nil {
logger.Fatal(err)
}
return my_string
}
Any idea ? What is my mistake ?
When selecting a single row as you are doing (using LIMIT 1
), instead of Query
you should use the QueryRow
method or, the newer, QueryRowContext
method.
func myFunction() string {
var my_string string
row := db.QueryRow("SELECT my_string ORDER BY agents_count ASC LIMIT 1;")
if err := row.Scan(&my_string); err != nil {
logger.Fatal(err)
}
return my_string
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments