Home  >  Article  >  Backend Development  >  How to query mysql data in go language

How to query mysql data in go language

PHPz
PHPzOriginal
2023-03-22 14:23:561736browse

Golang is an emerging programming language that, like other languages, can interact with a variety of databases. In this article, we will discuss how to query a MySQL database using the MySQL driver in Golang.

In order to use the MySQL driver, we need to install it into our Go project with the following command:

go get github.com/go-sql-driver/mysql

After the installation is complete, we need to import it into the Golang project:

import "github.com/go-sql-driver/mysql"

Next, we need to establish a connection to the MySQL database. Here is sample code that will connect to a database named "mydatabase":

db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/mydatabase")
if err != nil {
    log.Fatal(err)
}
defer db.Close()

Note that in the connection string, we specify the port of the MySQL server, which is 3306 by default.

Once we have established a connection to the MySQL database, we can start querying the data. The following is a simple query example that retrieves the records of all users from a table named "users":

rows, err := db.Query("SELECT * FROM users")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var email string
    err = rows.Scan(&id, &name, &email)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, name, email)
}

err = rows.Err()
if err != nil {
    log.Fatal(err)
}

In the above example, we have used the db.Query function to execute the SQL query. This function will return a Rows object containing all rows of the query results.

Next, we use a for loop to traverse all rows and use the rows.Scan function to read the column values ​​row by row. Finally, we check for errors in any query results.

Of course, we can also use parameterized queries to query data more safely. Parameterized queries prevent SQL injection attacks. Here is a sample code snippet that uses a parameterized query to retrieve user records named "john":

rows, err := db.Query("SELECT * FROM users WHERE name = ?", "john")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var email string
    err = rows.Scan(&id, &name, &email)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, name, email)
}

err = rows.Err()
if err != nil {
    log.Fatal(err)
}

In the above example, we have used the "?" placeholder in the query string, And pass the value you want to match in the parameter of the Query function.

Summary:

This article introduces how to use Golang's MySQL driver to query the MySQL database. We showed how to establish a connection to MySQL, how to execute queries, and how to use parameterized queries. These examples provide a good starting point for beginners on how to start using Golang to interact with a MySQL database.

The above is the detailed content of How to query mysql data in go language. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn