質問編集履歴

3

具体化

2016/07/11 01:17

投稿

earnest_gay
earnest_gay

スコア615

test CHANGED
File without changes
test CHANGED
@@ -83,3 +83,95 @@
83
83
 
84
84
 
85
85
  宜しくお願いします。
86
+
87
+
88
+
89
+ ---
90
+
91
+
92
+
93
+ 追記
94
+
95
+
96
+
97
+ 回答ありがとうございます。
98
+
99
+
100
+
101
+ ON DUPLICATE KEY UPDATEを使ってテストしているのですが、
102
+
103
+ これを実行すると上から2行目がテスト1に変わることは分かりました。
104
+
105
+
106
+
107
+ ```ここに言語を入力
108
+
109
+ $sql = "INSERT INTO user_vitae(
110
+
111
+ user_id,
112
+
113
+ projectTitle,
114
+
115
+ projectsContents
116
+
117
+ ) VALUES (?, ?, ?)
118
+
119
+ ON DUPLICATE KEY UPDATE
120
+
121
+ user_id = ?,
122
+
123
+ projectTitle = ?,
124
+
125
+ projectsContents = ?
126
+
127
+ ";
128
+
129
+ for($i=0;$i<count($_POST['projectTitle']);$i++) {
130
+
131
+ $stmt = $this->pdo->prepare($sql);
132
+
133
+ $stmt->execute([
134
+
135
+ $_SESSION['id'],
136
+
137
+ $_POST['projectTitle'][$i],
138
+
139
+ $_POST['projectsContents'][$i],
140
+
141
+ $_SESSION['id'],
142
+
143
+ $_POST['projectTitle'][$i],
144
+
145
+ $_POST['projectsContents'][$i]
146
+
147
+ ]);
148
+
149
+ ```
150
+
151
+
152
+
153
+ ![イメージ説明](73d91cb3845e50fb2c98c547b5309984.jpeg)
154
+
155
+
156
+
157
+ しかし、案件名をUNIQUEにしているので、例えば
158
+
159
+ 「test1」登録しておいて、
160
+
161
+ 案件名を「test2」に変えたいなぁ~ってなったら、
162
+
163
+ 更新ではなく新規登録になってしまいます。
164
+
165
+
166
+
167
+
168
+
169
+ これはどう防げばよいのでしょうか?
170
+
171
+
172
+
173
+ 入力を必要としないカラムはこうなってます...
174
+
175
+
176
+
177
+ ![イメージ説明](e45d54b2e709b21baee11cf3f1b583d8.jpeg)

2

具体化

2016/07/11 01:17

投稿

earnest_gay
earnest_gay

スコア615

test CHANGED
File without changes
test CHANGED
@@ -64,6 +64,20 @@
64
64
 
65
65
 
66
66
 
67
+ パッと思いついたのが
68
+
69
+ 単純にDBの内容を取得してemptyとかで判定して
70
+
71
+ なければINSERT
72
+
73
+ あればUPDATE
74
+
75
+
76
+
77
+ なんですが、こういう風にしているだけなのでしょうか?
78
+
79
+
80
+
67
81
  ![イメージ説明](13d27411faed39312e4af26f25516212.jpeg)
68
82
 
69
83
 

1

具体化

2016/07/10 23:02

投稿

earnest_gay
earnest_gay

スコア615

test CHANGED
File without changes
test CHANGED
@@ -40,4 +40,32 @@
40
40
 
41
41
 
42
42
 
43
+ マイナビ転職サイトの更新ページを参考にしているんですが
44
+
45
+ 例えば、自己PRには私が以前入力したものが表示されています。
46
+
47
+
48
+
49
+ この自己PRをちょっと変更して「変更内容を保存する」を押すと多分ですが、
50
+
51
+ UPDATEのSQLが走ってると思います。
52
+
53
+
54
+
55
+ でも、志望動機に関してはまだ何も入力したことがないので、
56
+
57
+ 何か入力して「変更内容を保存する」を押すと多分ですが、
58
+
59
+ INSERTのSQLが走ってると思います。
60
+
61
+
62
+
63
+ そこがどういうロジックになってるのかが分からないのです...
64
+
65
+
66
+
67
+ ![イメージ説明](13d27411faed39312e4af26f25516212.jpeg)
68
+
69
+
70
+
43
71
  宜しくお願いします。