Home >Database >Mysql Tutorial >How to query mysql data in go language
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.
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) }
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) }
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!