質問編集履歴

3

文法の修正

2020/08/06 08:09

投稿

moka_late
moka_late

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,3 @@
1
- ```### 前提・実現したいこと
2
-
3
1
  phpでmysqlのデータベースに以下の内容を登録したいと考えています。
4
2
 
5
3
  ・テーブル名「user_data」にidを登録
@@ -24,9 +22,9 @@
24
22
 
25
23
 
26
24
 
25
+
26
+
27
- ### 該当のソースコード
27
+ ```
28
-
29
-
30
28
 
31
29
  ```php
32
30
 

2

加筆修正

2020/08/06 08:09

投稿

moka_late
moka_late

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,287 +1,283 @@
1
+ ```### 前提・実現したいこと
2
+
3
+ phpでmysqlのデータベースに以下の内容を登録したいと考えています。
4
+
5
+ ・テーブル名「user_data」にidを登録
6
+
7
+ ・テーブル名「test_data」~「jumacle2」のsub_idに「user_data」のidを登録
8
+
9
+
10
+
11
+ しかし、データベースを確認したところ、user_dataにはidが登録されず、test_dataにのみデータが入っている状態です。
12
+
13
+
14
+
15
+ (ちなみに気づけばプロ並みPHPを見ながら書いています。)
16
+
17
+
18
+
19
+ 元々user_dataにのみデータが入り、test_dataには入らない状態だったので色々と書き換えては戻しを繰り返した結果、いつの間にか逆転してしまいました。
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ ### 該当のソースコード
28
+
29
+
30
+
31
+ ```php
32
+
33
+ <?php
34
+
35
+ ini_set("display_errors", "On");
36
+
37
+ ?>
38
+
39
+ <!doctype html>
40
+
41
+ <html lang="ja">
42
+
43
+ <head>
44
+
45
+ <meta charset="utf-8">
46
+
47
+ <title>心理学実験|登録完了</title>
48
+
49
+ <style type="text/css">
50
+
51
+ body{
52
+
53
+ text-align:center;
54
+
55
+ margin-top:100px;
56
+
57
+ }
58
+
59
+ input[type="submit"]{
60
+
61
+ width:100px;
62
+
63
+ height:50px;
64
+
65
+ font-size:18px;
66
+
67
+ }
68
+
69
+ input[name="id"]{
70
+
71
+ width:200px;
72
+
73
+ height:30px;
74
+
75
+ font-size:28px;
76
+
77
+ margin-bottom:50px;
78
+
79
+ }
80
+
81
+ </style>
82
+
83
+ </head>
84
+
85
+ <body>
86
+
87
+ <?php
88
+
89
+ try
90
+
91
+ {
92
+
93
+
94
+
95
+ $sub_id = $_POST['id'];
96
+
97
+
98
+
99
+ $sub_id = htmlspecialchars($sub_id);
100
+
101
+
102
+
103
+ $dsn = 'mysql:dbname=root;host=localhost:3306';
104
+
105
+ $user = 'root';
106
+
107
+ $password = '';
108
+
109
+ $dbh = new PDO($dsn, $user, $password);
110
+
111
+ $dbh->query('SET NAMES utf8');
112
+
113
+
114
+
115
+ $sql = 'INSERT INTO user_data(id) VALUES(?)';
116
+
117
+ $stmt = $dbh->prepare($sql);
118
+
119
+ $data[] = $sub_id;
120
+
121
+ $stmt->execute($data);
122
+
123
+
124
+
125
+
126
+
127
+ $sql = 'INSERT INTO test_data(sub_id) VALUES(?)';
128
+
129
+ $stmt = $dbh->prepare($sql);
130
+
131
+ $stmt->execute($data);
132
+
133
+
134
+
135
+ $dbh = null;
136
+
137
+
138
+
139
+ echo $sub_id;
140
+
141
+ echo 'を登録しました。<br/>';
142
+
143
+ echo '間違いがなければもう一度IDを入力し、事前調査へ進んでください。';
144
+
145
+ echo '<br/>';
146
+
147
+ echo '<form method="post" action="sub_login_check.php">';
148
+
149
+ echo '<br/>';
150
+
151
+ echo '<input type="text" name="id">';
152
+
153
+ echo '<input type="submit" value="OK">';
154
+
155
+ echo '<input type="button" onclick="history.back()" value="戻る">';
156
+
157
+ echo '</form>';
158
+
159
+ echo '<a href="sub_login.html">ログイン画面へ</a>';
160
+
161
+
162
+
163
+ }
164
+
165
+ catch(Exception $e)
166
+
167
+ {
168
+
169
+ echo 'ただ今障害により大変ご迷惑をおかけしています。';
170
+
171
+ echo exit();
172
+
173
+
174
+
175
+ }
176
+
177
+ ?>
178
+
179
+ </body>
180
+
181
+ </html>
182
+
1
183
  ```
2
184
 
3
- コード
185
+ 修正後
186
+
4
-
187
+ エラー文として
188
+
189
+ There is no active transaction
190
+
5
- ```### 前提・実現したいこと
191
+ が表示されるようになりました
6
-
7
- phpでmysqlのデータベースに以下の内容を登録したいと考えています。
192
+
8
-
9
- ・テーブル名「user_data」にidを登録
10
-
11
- ・テーブル名「test_data」~「jumacle2」のsub_idに「user_data」のidを登録
12
-
13
-
14
-
15
- しかし、データベースを確認したところ、user_dataにはidが登録されず、test_dataにのみデータが入っている状態です。
16
-
17
-
18
-
19
- (ちなみに気づけばプロ並みPHPを見ながら書いています。)
20
-
21
-
22
-
23
- 元々user_dataにのみデータが入り、test_dataには入らない状態だったので色々と書き換えては戻しを繰り返した結果、いつの間にか逆転してしまいました。
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
- ### 該当のソースコード
32
-
33
-
34
-
35
- ```php
193
+ ```
36
194
 
37
195
  <?php
38
196
 
197
+ try
198
+
199
+ {
200
+
201
+
202
+
203
+ $sub_id = $_POST['id'];
204
+
205
+
206
+
207
+ $dsn = 'mysql:dbname=tachibanastudy;host=localhost;port=3306;charset=utf8';
208
+
209
+ $user = 'tachibanastudy';
210
+
211
+ $password = 'Ovu21176';
212
+
213
+ $dbh = new PDO($dsn, $user, $password, [
214
+
215
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
216
+
217
+ PDO::ATTR_EMULATE_PREPARES => false,
218
+
219
+ ]);
220
+
221
+
222
+
223
+ $sql = 'INSERT INTO user_data(id) VALUES(?)';
224
+
225
+ $stmt = $dbh->prepare($sql);
226
+
227
+ $data[] = $sub_id;
228
+
229
+ $stmt->execute($data);
230
+
231
+
232
+
233
+ $sql = 'INSERT INTO test_data(sub_id) VALUES(?)';
234
+
235
+ $stmt = $dbh->prepare($sql);
236
+
237
+ $stmt->execute($data);
238
+
239
+
240
+
241
+ $dbh->commit();
242
+
243
+ $dbh = null;
244
+
245
+
246
+
247
+ echo $sub_id;
248
+
249
+ echo 'を登録しました。<br/>';
250
+
251
+ echo '間違いがなければもう一度IDを入力し、事前調査へ進んでください。';
252
+
253
+ echo '<br/>';
254
+
255
+ echo '<form method="post" action="sub_login_check.php">';
256
+
257
+ echo '<br/>';
258
+
259
+ echo '<input type="text" name="id">';
260
+
39
- ini_set("display_errors", "On");
261
+ echo '<input type="submit" value="OK">';
262
+
263
+ echo '<input type="button" onclick="history.back()" value="戻る">';
264
+
265
+ echo '</form>';
266
+
267
+ echo '<a href="sub_login.html">ログイン画面へ</a>';
268
+
269
+
270
+
271
+ }
272
+
273
+ catch(Exception $e)
274
+
275
+ {
276
+
277
+ echo $e->getMessage();
278
+
279
+ };
40
280
 
41
281
  ?>
42
282
 
43
- <!doctype html>
44
-
45
- <html lang="ja">
46
-
47
- <head>
48
-
49
- <meta charset="utf-8">
50
-
51
- <title>心理学実験|登録完了</title>
52
-
53
- <style type="text/css">
54
-
55
- body{
56
-
57
- text-align:center;
58
-
59
- margin-top:100px;
60
-
61
- }
62
-
63
- input[type="submit"]{
64
-
65
- width:100px;
66
-
67
- height:50px;
68
-
69
- font-size:18px;
70
-
71
- }
72
-
73
- input[name="id"]{
74
-
75
- width:200px;
76
-
77
- height:30px;
78
-
79
- font-size:28px;
80
-
81
- margin-bottom:50px;
82
-
83
- }
84
-
85
- </style>
86
-
87
- </head>
88
-
89
- <body>
90
-
91
- <?php
92
-
93
- try
94
-
95
- {
96
-
97
-
98
-
99
- $sub_id = $_POST['id'];
100
-
101
-
102
-
103
- $sub_id = htmlspecialchars($sub_id);
104
-
105
-
106
-
107
- $dsn = 'mysql:dbname=root;host=localhost:3306';
108
-
109
- $user = 'root';
110
-
111
- $password = '';
112
-
113
- $dbh = new PDO($dsn, $user, $password);
114
-
115
- $dbh->query('SET NAMES utf8');
116
-
117
-
118
-
119
- $sql = 'INSERT INTO user_data(id) VALUES(?)';
120
-
121
- $stmt = $dbh->prepare($sql);
122
-
123
- $data[] = $sub_id;
124
-
125
- $stmt->execute($data);
126
-
127
-
128
-
129
-
130
-
131
- $sql = 'INSERT INTO test_data(sub_id) VALUES(?)';
132
-
133
- $stmt = $dbh->prepare($sql);
134
-
135
- $stmt->execute($data);
136
-
137
-
138
-
139
- $dbh = null;
140
-
141
-
142
-
143
- echo $sub_id;
144
-
145
- echo 'を登録しました。<br/>';
146
-
147
- echo '間違いがなければもう一度IDを入力し、事前調査へ進んでください。';
148
-
149
- echo '<br/>';
150
-
151
- echo '<form method="post" action="sub_login_check.php">';
152
-
153
- echo '<br/>';
154
-
155
- echo '<input type="text" name="id">';
156
-
157
- echo '<input type="submit" value="OK">';
158
-
159
- echo '<input type="button" onclick="history.back()" value="戻る">';
160
-
161
- echo '</form>';
162
-
163
- echo '<a href="sub_login.html">ログイン画面へ</a>';
164
-
165
-
166
-
167
- }
168
-
169
- catch(Exception $e)
170
-
171
- {
172
-
173
- echo 'ただ今障害により大変ご迷惑をおかけしています。';
174
-
175
- echo exit();
176
-
177
-
178
-
179
- }
180
-
181
- ?>
182
-
183
- </body>
184
-
185
- </html>
186
-
187
283
  ```
188
-
189
- 修正後
190
-
191
- エラー文として
192
-
193
- There is no active transaction
194
-
195
- が表示されるようになりました。
196
-
197
- ```
198
-
199
- <?php
200
-
201
- try
202
-
203
- {
204
-
205
-
206
-
207
- $sub_id = $_POST['id'];
208
-
209
-
210
-
211
- $dsn = 'mysql:dbname=tachibanastudy;host=localhost;port=3306;charset=utf8';
212
-
213
- $user = 'tachibanastudy';
214
-
215
- $password = 'Ovu21176';
216
-
217
- $dbh = new PDO($dsn, $user, $password, [
218
-
219
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
220
-
221
- PDO::ATTR_EMULATE_PREPARES => false,
222
-
223
- ]);
224
-
225
-
226
-
227
- $sql = 'INSERT INTO user_data(id) VALUES(?)';
228
-
229
- $stmt = $dbh->prepare($sql);
230
-
231
- $data[] = $sub_id;
232
-
233
- $stmt->execute($data);
234
-
235
-
236
-
237
- $sql = 'INSERT INTO test_data(sub_id) VALUES(?)';
238
-
239
- $stmt = $dbh->prepare($sql);
240
-
241
- $stmt->execute($data);
242
-
243
-
244
-
245
- $dbh->commit();
246
-
247
- $dbh = null;
248
-
249
-
250
-
251
- echo $sub_id;
252
-
253
- echo 'を登録しました。<br/>';
254
-
255
- echo '間違いがなければもう一度IDを入力し、事前調査へ進んでください。';
256
-
257
- echo '<br/>';
258
-
259
- echo '<form method="post" action="sub_login_check.php">';
260
-
261
- echo '<br/>';
262
-
263
- echo '<input type="text" name="id">';
264
-
265
- echo '<input type="submit" value="OK">';
266
-
267
- echo '<input type="button" onclick="history.back()" value="戻る">';
268
-
269
- echo '</form>';
270
-
271
- echo '<a href="sub_login.html">ログイン画面へ</a>';
272
-
273
-
274
-
275
- }
276
-
277
- catch(Exception $e)
278
-
279
- {
280
-
281
- echo $e->getMessage();
282
-
283
- };
284
-
285
- ?>
286
-
287
- ```

1

ご指摘いただいた点を加筆修正しました。

2020/08/06 08:06

投稿

moka_late
moka_late

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
+ ```
2
+
3
+ コード
4
+
1
- ### 前提・実現したいこと
5
+ ```### 前提・実現したいこと
2
6
 
3
7
  phpでmysqlのデータベースに以下の内容を登録したいと考えています。
4
8
 
@@ -181,3 +185,103 @@
181
185
  </html>
182
186
 
183
187
  ```
188
+
189
+ 修正後
190
+
191
+ エラー文として
192
+
193
+ There is no active transaction
194
+
195
+ が表示されるようになりました。
196
+
197
+ ```
198
+
199
+ <?php
200
+
201
+ try
202
+
203
+ {
204
+
205
+
206
+
207
+ $sub_id = $_POST['id'];
208
+
209
+
210
+
211
+ $dsn = 'mysql:dbname=tachibanastudy;host=localhost;port=3306;charset=utf8';
212
+
213
+ $user = 'tachibanastudy';
214
+
215
+ $password = 'Ovu21176';
216
+
217
+ $dbh = new PDO($dsn, $user, $password, [
218
+
219
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
220
+
221
+ PDO::ATTR_EMULATE_PREPARES => false,
222
+
223
+ ]);
224
+
225
+
226
+
227
+ $sql = 'INSERT INTO user_data(id) VALUES(?)';
228
+
229
+ $stmt = $dbh->prepare($sql);
230
+
231
+ $data[] = $sub_id;
232
+
233
+ $stmt->execute($data);
234
+
235
+
236
+
237
+ $sql = 'INSERT INTO test_data(sub_id) VALUES(?)';
238
+
239
+ $stmt = $dbh->prepare($sql);
240
+
241
+ $stmt->execute($data);
242
+
243
+
244
+
245
+ $dbh->commit();
246
+
247
+ $dbh = null;
248
+
249
+
250
+
251
+ echo $sub_id;
252
+
253
+ echo 'を登録しました。<br/>';
254
+
255
+ echo '間違いがなければもう一度IDを入力し、事前調査へ進んでください。';
256
+
257
+ echo '<br/>';
258
+
259
+ echo '<form method="post" action="sub_login_check.php">';
260
+
261
+ echo '<br/>';
262
+
263
+ echo '<input type="text" name="id">';
264
+
265
+ echo '<input type="submit" value="OK">';
266
+
267
+ echo '<input type="button" onclick="history.back()" value="戻る">';
268
+
269
+ echo '</form>';
270
+
271
+ echo '<a href="sub_login.html">ログイン画面へ</a>';
272
+
273
+
274
+
275
+ }
276
+
277
+ catch(Exception $e)
278
+
279
+ {
280
+
281
+ echo $e->getMessage();
282
+
283
+ };
284
+
285
+ ?>
286
+
287
+ ```