go言語 mysqlに接続してinsertを実行する

  • 作成日 2022.06.23
  • 更新日 2022.10.28
  • go
go言語 mysqlに接続してinsertを実行する

go言語で、mysqlに接続してinsertを実行するサンプルコードを記述してます。go言語のバージョンは1.14.6を使用してます。

環境

  • OS windows 11 Home
  • go 1.14.6

github.com/go-sql-driver/mysqlインストール

ライブラリ「github.com/go-sql-driver/mysql」を使用するのでない場合は、「go get」を使って追加しておきます。

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

サンプルコード

localhostにある「mysql」に接続して、以下のDB「foo」にあるテーブル「TestData」にinsert文を実行してみます。

テーブル「 TestData 」

サンプルコードは、以下となります。

package main

import (
	"database/sql"
	"fmt"

	_ "github.com/go-sql-driver/mysql"
)

func main() {

	//sql.Open("mysql", "user:password@/dbname")
	db, err := sql.Open("mysql", "testuser:password@tcp(localhost:3306)/foo")

	if err != nil {
		panic(err.Error())
	}

	defer db.Close()

  // プリペアードステートメントを使用
	in, err := db.Prepare("INSERT INTO TestData(name) VALUES(?)")

	if err != nil {
		fmt.Println("データベース接続失敗")
		panic(err.Error())
	} else {
		fmt.Println("データベース接続成功")
	}

	defer db.Close()

	result, err := in.Exec("goro")

	if err != nil {
		panic(err.Error())
	}

	lastId, err := result.LastInsertId()

	if err != nil {
		panic(err.Error())
	}

	fmt.Println(lastId)

}

実行結果を見ると、insertされていることが確認できます。