質問編集履歴

2

関数の修正

2020/12/06 09:43

投稿

naomaru
naomaru

スコア2

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  // Testを受け取ってInsertをしたのですが、
52
52
 
53
- func (XX Test) {
53
+ func Insert(XX Test) {
54
54
 
55
55
  db, _ := sql.Open("postgres",***(db情報))
56
56
 

1

文法の修正

2020/12/06 09:43

投稿

naomaru
naomaru

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- responseで返ってきた値をstructに入れ、
10
-
11
- for rangeでstructに入っている値を抽出し、DBに登録したいです。
9
+ structに入っている値をDB(postgres)挿入したいです。
12
10
 
13
11
 
14
12
 
@@ -20,28 +18,66 @@
20
18
 
21
19
 
22
20
 
23
- ネット参考に以下のコードで試したのですが、上手くいかず…
21
+ テーブルの型に合わせてstruct宣言まし
24
22
 
23
+ type Test struct {
25
24
 
25
+ col_a int
26
26
 
27
- for _, value := range XXX(sturct) {
27
+ col_b int
28
28
 
29
- テーブルにinsertする関数
29
+ col_c string
30
30
 
31
31
  }
32
32
 
33
33
 
34
34
 
35
-
36
-
37
- fmt.Println(XXX)では
38
-
39
- { aaa bbb ccc ddd eee }
35
+ その後structの初期化で以下を行いました。
40
-
41
- 現在このように表示されております。
42
36
 
43
37
 
44
38
 
45
- そもそもfor rangeで1つ1つカラムに入れていくべきなのか、
39
+ XX := Test {
46
40
 
41
+ col_a: 10,
42
+
43
+ col_b: 20,
44
+
47
- 一括で登録できるのかも分からない状況です。
45
+ col_c: "test",
46
+
47
+ }
48
+
49
+
50
+
51
+ // Testを受け取ってInsertをしたのですが、
52
+
53
+ func (XX Test) {
54
+
55
+ db, _ := sql.Open("postgres",***(db情報))
56
+
57
+
58
+
59
+ var col_a string
60
+
61
+
62
+
63
+ query := "INSERT INT dbname(col_a, col_b, col_c)"
64
+
65
+ query += "VALUES($1,$2,$3) RETURNING col_a"
66
+
67
+
68
+
69
+ err = db.QueryRow(query, XX).Scan(&col_a)
70
+
71
+
72
+
73
+ }
74
+
75
+
76
+
77
+ 上記コードを走らせると「converting argument $1 type: unsupported type…」と出て、型が違うとエラーが出ます。
78
+
79
+
80
+
81
+ 上記コードの err = db.QueryRow(query, 10, 20, "test").Scan(&col_a)
82
+
83
+ とするとテーブルに値が挿入されているので、どうすればXX(struct)で挿入できるのかご教示頂けたら幸いです。