teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

関数の修正

2020/12/06 09:43

投稿

naomaru
naomaru

スコア2

title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  // Testを受け取ってInsertをしたのですが、
27
- func (XX Test) {
27
+ func Insert(XX Test) {
28
28
  db, _ := sql.Open("postgres",***(db情報))
29
29
 
30
30
  var col_a string

1

文法の修正

2020/12/06 09:43

投稿

naomaru
naomaru

スコア2

title CHANGED
File without changes
body CHANGED
@@ -2,23 +2,41 @@
2
2
 
3
3
  Go言語の初歩的なところを勉強していますが、解決できないので質問させてください。。
4
4
 
5
- responseで返ってきた値をstructに入れ、
6
- for rangeでstructに入っている値を抽出し、DBに登録したいです。
5
+ structに入っている値をDB(postgres)挿入したいです。
7
6
 
8
7
 
9
8
 
10
9
  ### 試したこと
11
10
 
12
- ネットを参考に以下のコドで試したのですが、上手くいかず…
11
+ ブルの型に合わせてstructを宣言まし
12
+ type Test struct {
13
+ col_a int
14
+ col_b int
15
+ col_c string
16
+ }
13
17
 
14
- for _, value := range XXX(sturct) {
18
+ その後structの初期化で以下を行いました。
19
+
15
- テーブルにinsertする関数
20
+ XX := Test {
21
+ col_a: 10,
22
+ col_b: 20,
23
+ col_c: "test",
16
24
  }
17
25
 
26
+ // Testを受け取ってInsertをしたのですが、
27
+ func (XX Test) {
28
+ db, _ := sql.Open("postgres",***(db情報))
29
+
30
+ var col_a string
31
+
32
+ query := "INSERT INT dbname(col_a, col_b, col_c)"
33
+ query += "VALUES($1,$2,$3) RETURNING col_a"
18
34
 
19
- fmt.Println(XXX)では
20
- { aaa bbb ccc ddd eee }
35
+ err = db.QueryRow(query, XX).Scan(&col_a)
21
- 現在このように表示されております。
22
36
 
37
+ }
38
+
39
+ 上記コードを走らせると「converting argument $1 type: unsupported type…」と出て、型が違うとエラーが出ます。
40
+
41
+ 上記コードの err = db.QueryRow(query, 10, 20, "test").Scan(&col_a)
23
- そもそもfor rangeで1つ1つカラムに入れていくべのか
42
+ とするとテーブル値が挿れているので、どうすればXX(struct)で挿入でのかご教示頂けたら幸いです。
24
- 一括で登録できるのかも分からない状況です。