質問編集履歴

7

しゅうせい

2018/08/27 12:18

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -14,11 +14,11 @@
14
14
 
15
15
  $db['pass'] = "省略"; // ユーザー名のパスワード
16
16
 
17
- $db['dbname'] = "省略"; // データベース名
17
+ $db['dbn'] = "省略"; // データベース名
18
18
 
19
19
 
20
20
 
21
- $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']);
21
+ $dsn = sprintf('mysql: host=%s; dbn=%s; charset=utf8', $db['host'], $db['dbn']);
22
22
 
23
23
 
24
24
 
@@ -42,25 +42,25 @@
42
42
 
43
43
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
44
44
 
45
- $sql="INSERT INTO subject_data(year,tname,subjectname,engname,roomname) VALUES (?, ?, ?, ?, ?)";
45
+ $sql="INSERT INTO sub_data(year,tn,sub,eng,name) VALUES (?, ?, ?, ?, ?)";
46
46
 
47
- $data=[$nendo,$teachername,$subject,$engname,$roomname];
47
+ $data=[$nen,$teacher,$sub,$eng,$name];
48
48
 
49
49
  print_r($data);
50
50
 
51
51
  $stmt=$pdo->prepare($sql);
52
52
 
53
- $stmt=$pdo->execute($data);
53
+ $stmt=$pdo->execute($dat);
54
54
 
55
- $sql="INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)";
55
+ $sql="INSERT INTO data(name,g,r,t1,t2,t3) VALUES (?, ?, ?, ?, ?, ?)";
56
56
 
57
- $data=[$roomname,$gyou,$retu,$turo1,$turo2,$turo3];
57
+ $dat=[$name,$g,$r,$t1,$t2,$t3];
58
58
 
59
59
  print_r($data);
60
60
 
61
61
  $stmt=$pdo->prepare($sql);
62
62
 
63
- $stmt=$pdo->execute($data);
63
+ $stmt=$pdo->execute($dat);
64
64
 
65
65
  } catch (PDOException $e) {
66
66
 

6

修正

2018/08/27 12:18

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -34,4 +34,44 @@
34
34
 
35
35
  ###試したこと
36
36
 
37
+ ```ここに言語を入力
38
+
39
+ try {
40
+
41
+ $pdo = new PDO($dsn, $db['user'], $db['pass']);
42
+
43
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
44
+
37
- 11行目のSUBJECTNAMEのNAMEを消すとsubject_dataテーブルのsubjectname以外の項目は登録されました。しかしsubjectnameの項目だけ何故かNULLのままです。
45
+ $sql="INSERT INTO subject_data(year,tname,subjectname,engname,roomname) VALUES (?, ?, ?, ?, ?)";
46
+
47
+ $data=[$nendo,$teachername,$subject,$engname,$roomname];
48
+
49
+ print_r($data);
50
+
51
+ $stmt=$pdo->prepare($sql);
52
+
53
+ $stmt=$pdo->execute($data);
54
+
55
+ $sql="INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)";
56
+
57
+ $data=[$roomname,$gyou,$retu,$turo1,$turo2,$turo3];
58
+
59
+ print_r($data);
60
+
61
+ $stmt=$pdo->prepare($sql);
62
+
63
+ $stmt=$pdo->execute($data);
64
+
65
+ } catch (PDOException $e) {
66
+
67
+ die($e->getMessage());
68
+
69
+ }
70
+
71
+ ```
72
+
73
+ このソースを追加し、実際に配列に格納されているか確認。その後実際にMySQLにINSERT文をソースの通りコピペして実行してエラー文を確認。
74
+
75
+ ERROR 1366 (HY000): Incorrect string value: '\xE3\x82\xBD\xE3\x83\x95...'
76
+
77
+ というエラーが出た。

5

修正

2018/04/13 06:53

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ###実現したいこと
2
2
 
3
- MySQLのデータベースにPHPでデータを入れたいのですが、以下のroom_dataにはINSERTされるのですがsubject_dataには何故かINSERTされません。この理由が分かる方回答お願いします。
3
+ MySQLのデータベースにPHPでデータを入れたいのですが、とあるテーブルにはINSERTされるのですが他のテーブルにはには何故かINSERTされません。この理由が分かる方回答お願いします。
4
4
 
5
5
  ###ソースコード
6
6
 
@@ -26,288 +26,12 @@
26
26
 
27
27
 
28
28
 
29
- if (!isset($_SESSION["NAME"])) {
30
29
 
31
- }
32
-
33
-
34
-
35
- $teachername = $_SESSION["NAME"];
36
-
37
- $nendo = $_SESSION["YEAR"];
38
-
39
- $subject = $_SESSION["SUBJECTNAME"];
40
-
41
- $roomname = $_SESSION["ROOMNAME"];
42
-
43
- $engname = $_SESSION["ENGNAME"];
44
-
45
-
46
-
47
- $gyou = $_SESSION["GYOU"];
48
-
49
- $retu = $_SESSION["RETU"];
50
-
51
- $turo1 = $_SESSION["TURO1"];
52
-
53
- $turo2 = $_SESSION["TURO2"];
54
-
55
- $turo3 = $_SESSION["TURO3"];
56
-
57
- try {
58
-
59
- $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
60
-
61
-
62
-
63
- $path = "/usr/local/www/apache24/data/test/support/".$teachername."/".$nendo."/".$engname;
64
-
65
- if(mkdir($path,0777,TRUE)) {
66
-
67
- }
68
-
69
- else {
70
-
71
- }
72
-
73
- $subjectinfo = $pdo->prepare("INSERT INTO subject_data(year,tname,subjectname,engname,roomname) VALUES (?, ?, ?, ?, ?)");
74
-
75
-
76
-
77
- $subjectinfo->execute(array($nendo,$teachername,$subject,$engname,$roomname));
78
-
79
-
80
-
81
- } catch (PDOException $e) {
82
-
83
- $errorMessage = 'データベースエラー!';
84
-
85
- }
86
-
87
- ?>
88
-
89
-
90
-
91
- <?php
92
-
93
- try {
94
-
95
- $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
96
-
97
-
98
-
99
- $roominfo = $pdo->prepare("INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)");
100
-
101
- $roominfo->execute(array($roomname,$gyou,$retu,$turo1,$turo2,$turo3));
102
-
103
-
104
-
105
- } catch (PDOException $e) {
106
-
107
- $errorMessage = 'データベースエラー!';
108
-
109
- echo "$errorMessage";
110
-
111
- }
112
-
113
- ?>
114
-
115
-
116
-
117
- <!DOCTYPE html>
118
-
119
- <html>
120
-
121
- <head>
122
-
123
- <meta charset="utf-8" />
124
-
125
- <title>完了</title>
126
-
127
- </head>
128
-
129
- <body>
130
-
131
- <form action='Main.php'>
132
-
133
- <p>完了しました。</p>
134
-
135
- <input type="submit" value="スタートへ">
136
-
137
- </form>
138
-
139
- </body>
140
-
141
- </html>
142
30
 
143
31
  ```
144
32
 
145
- ###INSERTされる予定のテーブル
146
33
 
147
- ```ここに言語を入力
148
-
149
- mysql> show columns from subject_data;
150
-
151
- +-------------+-------------+------+-----+---------+-------+
152
-
153
- | Field | Type | Null | Key | Default | Extra |
154
-
155
- +-------------+-------------+------+-----+---------+-------+
156
-
157
- | year | int(11) | YES | | NULL | |
158
-
159
- | tname | varchar(20) | YES | | NULL | |
160
-
161
- | subjectname | varchar(40) | YES | | NULL | |
162
-
163
- | engname | varchar(40) | YES | | NULL | |
164
-
165
- | roomname | varchar(20) | YES | | NULL | |
166
-
167
- +-------------+-------------+------+-----+---------+-------+
168
-
169
- ```
170
34
 
171
35
  ###試したこと
172
36
 
173
37
  11行目のSUBJECTNAMEのNAMEを消すとsubject_dataテーブルのsubjectname以外の項目は登録されました。しかしsubjectnameの項目だけ何故かNULLのままです。
174
-
175
- ###ソース修正後
176
-
177
- ```ここに言語を入力
178
-
179
- <?php
180
-
181
- $db['host'] = "省略"; // DBサーバのURL
182
-
183
- $db['user'] = "省略"; // ユーザー名
184
-
185
- $db['pass'] = "省略"; // ユーザー名のパスワード
186
-
187
- $db['dbname'] = "省略"; // データベース名
188
-
189
-
190
-
191
- $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']);
192
-
193
-
194
-
195
- session_start();
196
-
197
-
198
-
199
- if (!isset($_SESSION["NAME"])) {
200
-
201
- }
202
-
203
-
204
-
205
- $teachername = $_SESSION["NAME"];
206
-
207
- $nendo = $_SESSION["YEAR"];
208
-
209
- $subject = $_SESSION["SUBJECTNAME"];
210
-
211
- $roomname = $_SESSION["ROOMNAME"];
212
-
213
- $engname = $_SESSION["ENGNAME"];
214
-
215
-
216
-
217
- $gyou = $_SESSION["GYOU"];
218
-
219
- $retu = $_SESSION["RETU"];
220
-
221
- $turo1 = $_SESSION["TURO1"];
222
-
223
- $turo2 = $_SESSION["TURO2"];
224
-
225
- $turo3 = $_SESSION["TURO3"];
226
-
227
- try {
228
-
229
-   $pdo = new PDO($dsn, $db['user'], $db['pass']);
230
-
231
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
232
-
233
- $sql="INSERT INTO subject_data(year,tname,subjectname,engname,roomname) VALUES (?, ?, ?, ?, ?)"; $data=[$nendo,$teachername,$subject,$engname,$roomname];
234
-
235
- print_r($data);
236
-
237
- $stmt=$pdo->prepare($sql);
238
-
239
- $stmt=$pdo->execute($data);
240
-
241
- $sql="INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)";
242
-
243
- $data=[$roomname,$gyou,$retu,$turo1,$turo2,$turo3];
244
-
245
- print_r($data);
246
-
247
- $stmt=$pdo->prepare($sql);
248
-
249
- $stmt=$pdo->execute($data);
250
-
251
- } catch (PDOException $e) {
252
-
253
- die($e->getMessage());
254
-
255
- }
256
-
257
- ?>
258
-
259
-
260
-
261
- <?php
262
-
263
- try {
264
-
265
- $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
266
-
267
-
268
-
269
- $roominfo = $pdo->prepare("INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)");
270
-
271
- $roominfo->execute(array($roomname,$gyou,$retu,$turo1,$turo2,$turo3));
272
-
273
-
274
-
275
- } catch (PDOException $e) {
276
-
277
- $errorMessage = 'データベースエラー!';
278
-
279
- echo "$errorMessage";
280
-
281
- }
282
-
283
- ?>
284
-
285
-
286
-
287
- <!DOCTYPE html>
288
-
289
- <html>
290
-
291
- <head>
292
-
293
- <meta charset="utf-8" />
294
-
295
- <title>完了</title>
296
-
297
- </head>
298
-
299
- <body>
300
-
301
- <form action='Main.php'>
302
-
303
- <p>完了しました。</p>
304
-
305
- <input type="submit" value="スタートへ">
306
-
307
- </form>
308
-
309
- </body>
310
-
311
- </html>
312
-
313
- ```

4

追記

2018/04/13 06:50

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -171,3 +171,143 @@
171
171
  ###試したこと
172
172
 
173
173
  11行目のSUBJECTNAMEのNAMEを消すとsubject_dataテーブルのsubjectname以外の項目は登録されました。しかしsubjectnameの項目だけ何故かNULLのままです。
174
+
175
+ ###ソース修正後
176
+
177
+ ```ここに言語を入力
178
+
179
+ <?php
180
+
181
+ $db['host'] = "省略"; // DBサーバのURL
182
+
183
+ $db['user'] = "省略"; // ユーザー名
184
+
185
+ $db['pass'] = "省略"; // ユーザー名のパスワード
186
+
187
+ $db['dbname'] = "省略"; // データベース名
188
+
189
+
190
+
191
+ $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']);
192
+
193
+
194
+
195
+ session_start();
196
+
197
+
198
+
199
+ if (!isset($_SESSION["NAME"])) {
200
+
201
+ }
202
+
203
+
204
+
205
+ $teachername = $_SESSION["NAME"];
206
+
207
+ $nendo = $_SESSION["YEAR"];
208
+
209
+ $subject = $_SESSION["SUBJECTNAME"];
210
+
211
+ $roomname = $_SESSION["ROOMNAME"];
212
+
213
+ $engname = $_SESSION["ENGNAME"];
214
+
215
+
216
+
217
+ $gyou = $_SESSION["GYOU"];
218
+
219
+ $retu = $_SESSION["RETU"];
220
+
221
+ $turo1 = $_SESSION["TURO1"];
222
+
223
+ $turo2 = $_SESSION["TURO2"];
224
+
225
+ $turo3 = $_SESSION["TURO3"];
226
+
227
+ try {
228
+
229
+   $pdo = new PDO($dsn, $db['user'], $db['pass']);
230
+
231
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
232
+
233
+ $sql="INSERT INTO subject_data(year,tname,subjectname,engname,roomname) VALUES (?, ?, ?, ?, ?)"; $data=[$nendo,$teachername,$subject,$engname,$roomname];
234
+
235
+ print_r($data);
236
+
237
+ $stmt=$pdo->prepare($sql);
238
+
239
+ $stmt=$pdo->execute($data);
240
+
241
+ $sql="INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)";
242
+
243
+ $data=[$roomname,$gyou,$retu,$turo1,$turo2,$turo3];
244
+
245
+ print_r($data);
246
+
247
+ $stmt=$pdo->prepare($sql);
248
+
249
+ $stmt=$pdo->execute($data);
250
+
251
+ } catch (PDOException $e) {
252
+
253
+ die($e->getMessage());
254
+
255
+ }
256
+
257
+ ?>
258
+
259
+
260
+
261
+ <?php
262
+
263
+ try {
264
+
265
+ $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
266
+
267
+
268
+
269
+ $roominfo = $pdo->prepare("INSERT INTO room_data(roomname,gyou,retu,turo1,turo2,turo3) VALUES (?, ?, ?, ?, ?, ?)");
270
+
271
+ $roominfo->execute(array($roomname,$gyou,$retu,$turo1,$turo2,$turo3));
272
+
273
+
274
+
275
+ } catch (PDOException $e) {
276
+
277
+ $errorMessage = 'データベースエラー!';
278
+
279
+ echo "$errorMessage";
280
+
281
+ }
282
+
283
+ ?>
284
+
285
+
286
+
287
+ <!DOCTYPE html>
288
+
289
+ <html>
290
+
291
+ <head>
292
+
293
+ <meta charset="utf-8" />
294
+
295
+ <title>完了</title>
296
+
297
+ </head>
298
+
299
+ <body>
300
+
301
+ <form action='Main.php'>
302
+
303
+ <p>完了しました。</p>
304
+
305
+ <input type="submit" value="スタートへ">
306
+
307
+ </form>
308
+
309
+ </body>
310
+
311
+ </html>
312
+
313
+ ```

3

追記

2018/04/13 02:22

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -167,3 +167,7 @@
167
167
  +-------------+-------------+------+-----+---------+-------+
168
168
 
169
169
  ```
170
+
171
+ ###試したこと
172
+
173
+ 11行目のSUBJECTNAMEのNAMEを消すとsubject_dataテーブルのsubjectname以外の項目は登録されました。しかしsubjectnameの項目だけ何故かNULLのままです。

2

修正しました。

2018/04/12 23:50

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -54,6 +54,8 @@
54
54
 
55
55
  $turo3 = $_SESSION["TURO3"];
56
56
 
57
+ try {
58
+
57
59
  $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
58
60
 
59
61
 
@@ -68,7 +70,9 @@
68
70
 
69
71
  }
70
72
 
71
-
73
+ $subjectinfo = $pdo->prepare("INSERT INTO subject_data(year,tname,subjectname,engname,roomname) VALUES (?, ?, ?, ?, ?)");
74
+
75
+
72
76
 
73
77
  $subjectinfo->execute(array($nendo,$teachername,$subject,$engname,$roomname));
74
78
 

1

追記

2018/04/12 23:37

投稿

aiueoaiueoaiue
aiueoaiueoaiue

スコア94

test CHANGED
File without changes
test CHANGED
@@ -118,17 +118,17 @@
118
118
 
119
119
  <meta charset="utf-8" />
120
120
 
121
- <title>追加完了</title>
121
+ <title>完了</title>
122
122
 
123
123
  </head>
124
124
 
125
125
  <body>
126
126
 
127
- <form action='Mainmenu.php'>
127
+ <form action='Main.php'>
128
128
 
129
- <p>科目と教室の追加が完了しました。</p>
129
+ <p>完了しました。</p>
130
130
 
131
- <input type="submit" value="メインメニューへ">
131
+ <input type="submit" value="スタへ">
132
132
 
133
133
  </form>
134
134
 
@@ -137,3 +137,29 @@
137
137
  </html>
138
138
 
139
139
  ```
140
+
141
+ ###INSERTされる予定のテーブル
142
+
143
+ ```ここに言語を入力
144
+
145
+ mysql> show columns from subject_data;
146
+
147
+ +-------------+-------------+------+-----+---------+-------+
148
+
149
+ | Field | Type | Null | Key | Default | Extra |
150
+
151
+ +-------------+-------------+------+-----+---------+-------+
152
+
153
+ | year | int(11) | YES | | NULL | |
154
+
155
+ | tname | varchar(20) | YES | | NULL | |
156
+
157
+ | subjectname | varchar(40) | YES | | NULL | |
158
+
159
+ | engname | varchar(40) | YES | | NULL | |
160
+
161
+ | roomname | varchar(20) | YES | | NULL | |
162
+
163
+ +-------------+-------------+------+-----+---------+-------+
164
+
165
+ ```