Can't return value in Golang

dmsakl

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 ?

mkopriva

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.

edited at
0

Comments

0 comments
Login to comment

Related