Um den MySQL-Treiber verwenden zu können, müssen wir ihn über den folgenden Befehl in unserem Go-Projekt installieren:
go get github.com/go-sql-driver/mysql
Nachdem die Installation abgeschlossen ist, müssen wir ihn in das Golang-Projekt importieren:
import "github.com/go-sql-driver/mysql"
Als nächstes müssen wir Sie müssen eine MySQL-Datenbankverbindung einrichten. Hier ist der Beispielcode, der eine Verbindung zu einer Datenbank namens „mydatabase“ herstellt:
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/mydatabase") if err != nil { log.Fatal(err) } defer db.Close()
Beachten Sie, dass wir in der Verbindungszeichenfolge den Port des MySQL-Servers angeben, der standardmäßig 3306 ist.
Nachdem wir erfolgreich eine Verbindung mit der MySQL-Datenbank hergestellt haben, können wir mit der Datenabfrage beginnen. Unten ist ein einfaches Beispiel, das die Datensätze aller Benutzer in der Tabelle mit dem Namen „users“ abruft
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) }
Wir haben die db.Query-Funktion übernommen, um die SQL-Abfrage auszuführen, wie im obigen Beispiel gezeigt. Diese Funktion gibt ein Rows-Objekt zurück, das alle Zeilen der Abfrageergebnisse enthält.
Als nächstes verwenden wir eine for-Schleife, um alle Zeilen zu durchlaufen, und verwenden die rows.Scan-Funktion, um die Spaltenwerte Zeile für Zeile zu lesen. Abschließend überprüfen wir alle Abfrageergebnisse auf Fehler.
Natürlich können wir auch parametrisierte Abfragen verwenden, um Daten sicherer abzufragen. Parametrisierte Abfragen verhindern SQL-Injection-Angriffe. Hier ist ein Beispielcodeausschnitt, der eine parametrisierte Abfrage verwendet, um Benutzerdatensätze mit dem Namen „john“ abzurufen:
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) }
Im obigen Beispiel haben wir den Platzhalter „?“ in der Abfragezeichenfolge und in den Parametern der Abfragefunktion verwendet das Sie abgleichen möchten, wird übergeben.
Das obige ist der detaillierte Inhalt vonSo fragen Sie MySQL-Daten in der Go-Sprache ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!