Home > Database > Mysql Tutorial > How to query mysql data in go language

How to query mysql data in go language

PHPz
Release: 2023-06-03 08:22:24
forward
1152 people have browsed it

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
Copy after login

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

import "github.com/go-sql-driver/mysql"
Copy after login

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()
Copy after login

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

After we successfully establish a connection with the MySQL database, we can start data query. The following is a simple example that retrieves the records of all users in the 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)
}
Copy after login

We use the db.Query function to execute SQL queries, as shown in the above example. 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)
}
Copy after login

In the above example, we have used the "?" placeholder in the query string and added The parameter of the Query function is passed the value that you want to match.

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!

Related labels:
Statement of this Website
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
Latest Issues
MySQL stops process
From 1970-01-01 08:00:00
0
0
0
Error when installing mysql on linux
From 1970-01-01 08:00:00
0
0
0
phpstudy cannot start mysql?
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template