MySQL ドライバーを使用するには、次のコマンドを使用して Go プロジェクトにインストールする必要があります:
go get github.com/go-sql-driver/mysql
インストールが完了したら、それを にインポートする必要があります。 Golang プロジェクト:
import "github.com/go-sql-driver/mysql"
次に、MySQL データベースへの接続を確立する必要があります。 「mydatabase」という名前のデータベースに接続するサンプル コードを次に示します。
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/mydatabase") if err != nil { log.Fatal(err) } defer db.Close()
接続文字列では、MySQL サーバーのポート (デフォルトでは 3306) を指定していることに注意してください。
MySQL データベースとの接続が正常に確立されたら、データ クエリを開始できます。以下は、「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) }
上の例に示すように、db.Query 関数を使用して SQL クエリを実行します。この関数は、クエリ結果のすべての行を含む Rows オブジェクトを返します。
次に、for ループを使用してすべての行を走査し、rows.Scan 関数を使用して列の値を行ごとに読み取ります。最後に、クエリ結果のエラーをチェックします。
もちろん、パラメータ化されたクエリを使用して、より安全にデータをクエリすることもできます。パラメータ化されたクエリは SQL インジェクション攻撃を防ぎます。以下に、パラメータ化されたクエリを使用して「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) }
上記の例では、クエリ文字列で「?」プレースホルダを使用し、クエリ関数には、照合する値が渡されます。
以上がGo言語でmysqlデータをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。