回答編集履歴

2

追記

2018/09/03 19:59

投稿

退会済みユーザー
test CHANGED
@@ -23,3 +23,405 @@
23
23
 
24
24
 
25
25
  ↑ 第4引数を設定しましょう。
26
+
27
+
28
+
29
+ ---
30
+
31
+
32
+
33
+ # サンプル
34
+
35
+
36
+
37
+ すぐに理解は難しいかもしれませんが、ざっくりと動きがわかればOKかと。
38
+
39
+
40
+
41
+ ```php
42
+
43
+ <?php
44
+
45
+
46
+
47
+ /**
48
+
49
+ * common.php
50
+
51
+ *
52
+
53
+ * @author Kosuke Shibuya <kosuke@jlamp.net>
54
+
55
+ * @since 2018/09/04
56
+
57
+ */
58
+
59
+ function h($string)
60
+
61
+ {
62
+
63
+ return htmlspecialchars($string, ENT_QUOTES, 'utf-8');
64
+
65
+ }
66
+
67
+
68
+
69
+ function get_pdo($host, $dbname)
70
+
71
+ {
72
+
73
+ $dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8mb4'
74
+
75
+ , $host
76
+
77
+ , $dbname
78
+
79
+ );
80
+
81
+ $user = 'root';
82
+
83
+ $password = 'password';
84
+
85
+ $options = [
86
+
87
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
88
+
89
+ ];
90
+
91
+ return new PDO($dsn, $user, $password, $options);
92
+
93
+ }
94
+
95
+
96
+
97
+ function select($host, $dbname, $sql, $params = [])
98
+
99
+ {
100
+
101
+ $pdo = get_pdo($host, $dbname);
102
+
103
+ $stmt = $pdo->prepare($sql);
104
+
105
+ $stmt->execute($params);
106
+
107
+ return $stmt->fetchAll();
108
+
109
+ }
110
+
111
+
112
+
113
+ function delete($host, $dbname, $sql, $params = [])
114
+
115
+ {
116
+
117
+ $pdo = get_pdo($host, $dbname);
118
+
119
+ $stmt = $pdo->prepare($sql);
120
+
121
+ return $stmt->execute($params);
122
+
123
+ }
124
+
125
+
126
+
127
+ function get_hosts()
128
+
129
+ {
130
+
131
+ return [
132
+
133
+ 'hogehoge.phy.lolipop.lan'
134
+
135
+ , 'hogehoge.phy.lolipop.lan'
136
+
137
+ , 'hogehoge.phy.lolipop.lan'
138
+
139
+ ];
140
+
141
+ }
142
+
143
+
144
+
145
+ function get_database()
146
+
147
+ {
148
+
149
+ return [
150
+
151
+ 'LAA0547874-hogehogehoge'
152
+
153
+ , 'LAA0547874-hogehogehoge'
154
+
155
+ , 'LAA0547874-hogehogehoge'
156
+
157
+ , 'LAA0547874-hogehogehoge'
158
+
159
+ , 'LAA0547874-hogehogehoge'
160
+
161
+ ];
162
+
163
+ }
164
+
165
+
166
+
167
+ function get_courses()
168
+
169
+ {
170
+
171
+ $host = filter_input(INPUT_GET, 'host');
172
+
173
+ $dbname = filter_input(INPUT_GET, 'dbname');
174
+
175
+
176
+
177
+ if ($host == '' || $dbname == '') {
178
+
179
+ return;
180
+
181
+ }
182
+
183
+
184
+
185
+ $sql = 'SELECT * FROM `consumercourse`';
186
+
187
+ return select($host, $dbname, $sql);
188
+
189
+ }
190
+
191
+
192
+
193
+ function delete_course()
194
+
195
+ {
196
+
197
+ $host = filter_input(INPUT_GET, 'host');
198
+
199
+ $dbname = filter_input(INPUT_GET, 'dbname');
200
+
201
+ $planid = filter_input(INPUT_GET, 'planid');
202
+
203
+
204
+
205
+ if ($host == '' || $dbname == '' || $planid == '') {
206
+
207
+ throw new Exception('パラメーターが不正です。');
208
+
209
+ }
210
+
211
+
212
+
213
+ $sql = 'DELETE FROM consumercourse WHERE planid = :planid';
214
+
215
+ $params = [];
216
+
217
+ $params[':planid'] = $planid;
218
+
219
+ return delete($host, $dbname, $sql, $params);
220
+
221
+ }
222
+
223
+
224
+
225
+ ```
226
+
227
+
228
+
229
+ ```php
230
+
231
+ <?php
232
+
233
+ /**
234
+
235
+ * index.php
236
+
237
+ */
238
+
239
+ // 開発時にエラーを表示する
240
+
241
+ ini_set('display_errors', true);
242
+
243
+ error_reporting(E_ALL);
244
+
245
+
246
+
247
+ // 共通関数読み込み
248
+
249
+ require_once 'common.php';
250
+
251
+
252
+
253
+ $hosts = get_hosts();
254
+
255
+ $databases = get_database();
256
+
257
+ $courses = get_courses();
258
+
259
+ ?>
260
+
261
+ <!DOCTYPE HTML>
262
+
263
+ <html lang="ja">
264
+
265
+ <head>
266
+
267
+ <meta charset="UTF-8">
268
+
269
+ <title></title>
270
+
271
+ </head>
272
+
273
+ <body>
274
+
275
+ <div>
276
+
277
+ <form action="">
278
+
279
+ <p>
280
+
281
+ <label for="host">ホスト</label>
282
+
283
+ <select name="host" id="host">
284
+
285
+ <?php foreach ($hosts as $host) : ?>
286
+
287
+ <option value="<?php echo h($host); ?>"><?php echo h($host); ?></option>
288
+
289
+ <?php endforeach; ?>
290
+
291
+ </select>
292
+
293
+ </p>
294
+
295
+ <p>
296
+
297
+ <label for="dbname">データベース</label>
298
+
299
+ <select name="dbname" id="dbname">
300
+
301
+ <?php foreach ($databases as $db) : ?>
302
+
303
+ <option value="<?php echo h($db); ?>"><?php echo h($db); ?></option>
304
+
305
+ <?php endforeach; ?>
306
+
307
+ </select>
308
+
309
+ </p>
310
+
311
+ </form>
312
+
313
+ </div>
314
+
315
+ <div>
316
+
317
+ <p>コース一覧</p>
318
+
319
+ <?php if (!is_null($courses)) : ?>
320
+
321
+ <table>
322
+
323
+ <thead>
324
+
325
+ <tr>
326
+
327
+ <th>planid</th>
328
+
329
+ <th>planname</th>
330
+
331
+ <th>plandescription</th>
332
+
333
+ <th>initialfee</th>
334
+
335
+ <th>monthlycost</th>
336
+
337
+ <th>video</th>
338
+
339
+ <th>consultation</th>
340
+
341
+ <th></th>
342
+
343
+ <th></th>
344
+
345
+ </tr>
346
+
347
+ </thead>
348
+
349
+ <tbody>
350
+
351
+ <?php foreach ($courses as $course): ?>
352
+
353
+ <tr>
354
+
355
+ <td><?php echo h($course['planid']); ?></td>
356
+
357
+ <td><?php echo h($course['planname']); ?></td>
358
+
359
+ <td><?php echo h($course['plandescription']); ?></td>
360
+
361
+ <td><?php echo h($course['initialfee']); ?></td>
362
+
363
+ <td><?php echo h($course['monthlycost']); ?></td>
364
+
365
+ <td><?php echo h($course['video']); ?></td>
366
+
367
+ <td><?php echo h($course['consultation']); ?></td>
368
+
369
+ <td>
370
+
371
+ <a href="delete.php?host=<?php echo filter_input(INPUT_GET, 'host'); ?>&dbname=<?php echo filter_input(INPUT_GET, 'dbname'); ?>&planid=<?php echo h($course['planid']); ?>">削除する</a>
372
+
373
+ </td>
374
+
375
+ </tr>
376
+
377
+ <?php endforeach; ?>
378
+
379
+ </tbody>
380
+
381
+ </table>
382
+
383
+ <?php else: ?>
384
+
385
+ <p>ホスト、データベースを選択してください。</p>
386
+
387
+ <?php endif; ?>
388
+
389
+ </div>
390
+
391
+ </body>
392
+
393
+ </html>
394
+
395
+ ```
396
+
397
+
398
+
399
+ ```php
400
+
401
+ <?php
402
+
403
+
404
+
405
+ /**
406
+
407
+ * delete.php
408
+
409
+ */
410
+
411
+ // 開発時にエラーを表示する
412
+
413
+ ini_set('display_errors', true);
414
+
415
+ error_reporting(E_ALL);
416
+
417
+
418
+
419
+ // 共通関数読み込み
420
+
421
+ require_once 'common.php';
422
+
423
+
424
+
425
+ delete_course();
426
+
427
+ ```

1

修正

2018/09/03 19:58

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,19 @@
7
7
  $stmt = $pdo->query("DELETE FROM consumercourse WHERE planid='test'");
8
8
 
9
9
  ```
10
+
11
+
12
+
13
+ ----
14
+
15
+
16
+
17
+ ```php
18
+
19
+ $pdo = new PDO("mysql:dbname=$db_datebase_6;host=$db_address_3;charset=utf8",$db_user,$db_password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
20
+
21
+ ```
22
+
23
+
24
+
25
+ ↑ 第4引数を設定しましょう。