質問編集履歴

3

皆様のご意見を基に修正したところ解決いたしました。

2016/10/20 08:30

投稿

kalon
kalon

スコア198

test CHANGED
File without changes
test CHANGED
@@ -269,3 +269,201 @@
269
269
  どのようにしたら、formで入力した値がsqlの疑問符プレースホルダにバインドされるのでしょうか?
270
270
 
271
271
  アドバイスとご指導のほどよろしくお願いします。
272
+
273
+
274
+
275
+
276
+
277
+ **皆様のご意見を基に、次のようなコードにしたら私の望んでいる結果を出力できるようになりました。**
278
+
279
+ ```ここに言語を入力
280
+
281
+ <?php
282
+
283
+
284
+
285
+ define('DSN', 'mysql:host=127.0.0.1;port=3306;dbname=mydb;charset=utf8;');
286
+
287
+ define('DB_USER', 'C9_USER');
288
+
289
+ define('DB_PASSWORD', '');
290
+
291
+
292
+
293
+
294
+
295
+ if (!empty($_POST)) {
296
+
297
+ try{
298
+
299
+
300
+
301
+ $company_name = filter_input( INPUT_POST, "cName");
302
+
303
+ $assigned_person = filter_input( INPUT_POST, "tanto");
304
+
305
+ $website = filter_input( INPUT_POST, "website");
306
+
307
+ $phone = filter_input( INPUT_POST, "tel");
308
+
309
+ $email = filter_input( INPUT_POST, "email");
310
+
311
+ $password = filter_input( INPUT_POST, "password");
312
+
313
+
314
+
315
+ $dbh = new PDO(DSN, getenv(DB_USER), DB_PASSWORD);
316
+
317
+ $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
318
+
319
+ /*c_numberとidは別処理でインクリメントさせる予定なので、ここではわざとc_number=CP6とid=6で固定しています。*/
320
+
321
+ $stmt = $dbh->prepare('insert into BeginnersTech.Companies values ("CP6", "6", ?, ?, ?, ?, ?, ?)');
322
+
323
+ //疑問符プレースホルダへ挿入したい場合は、execute()の()内に変数を入れるだけで自動的にバインドされる。
324
+
325
+ $stmt->execute([$company_name,$assigned_person,$website,$phone,$email,$password]);
326
+
327
+
328
+
329
+ echo '企業名:'.$company_name.'</br>';
330
+
331
+ echo '担当者:'.$assigned_person.'</br>';
332
+
333
+ echo 'ウェブサイト:'.$website.'</br>';
334
+
335
+ echo '電話番号:'.$phone.'</br>';
336
+
337
+ echo 'メール'.$email.'</br>';
338
+
339
+ echo 'パスワード:'.$password.'</br>';
340
+
341
+
342
+
343
+ $company_name = "";
344
+
345
+ $assigned_person = "";
346
+
347
+ $website = "";
348
+
349
+ $phone = "";
350
+
351
+ $email = "";
352
+
353
+ $password = "";
354
+
355
+
356
+
357
+ echo "登録しました";
358
+
359
+ } catch (PDOException $e) {
360
+
361
+ print('Error:'.$e->getMessage());
362
+
363
+ echo "エラーが起きました";
364
+
365
+ echo $e->getMessage();
366
+
367
+ die();
368
+
369
+ }
370
+
371
+ }
372
+
373
+
374
+
375
+
376
+
377
+ ?>
378
+
379
+
380
+
381
+ <!doctype html>
382
+
383
+ <html lang="ja">
384
+
385
+ <head>
386
+
387
+ <meta charset="UTF-8">
388
+
389
+ <title>Document</title>
390
+
391
+ </head>
392
+
393
+ <body>
394
+
395
+ <form action="" method="post">
396
+
397
+ <div>
398
+
399
+ <label for="cName">企業名</label>
400
+
401
+ <input type="text" id="cName" name="cName"/>
402
+
403
+ </div>
404
+
405
+
406
+
407
+ <div>
408
+
409
+ <label for="tanto">担当者の名前</label>
410
+
411
+ <input type="text" id="tanto" name="tanto"/>
412
+
413
+ </div>
414
+
415
+
416
+
417
+ <div>
418
+
419
+ <label for="website">企業のウェブサイト</label>
420
+
421
+ <input type="text" id="website" name="website"/>
422
+
423
+ </div>
424
+
425
+
426
+
427
+ <div>
428
+
429
+ <label for="tel">電話番号</label>
430
+
431
+ <input type="tel" id="tel" name="tel"/>
432
+
433
+ </div>
434
+
435
+
436
+
437
+ <div>
438
+
439
+ <label for="password">パスワード</label>
440
+
441
+ <input type="password" id="password" name="password"/>
442
+
443
+ </div>
444
+
445
+
446
+
447
+ <div>
448
+
449
+ <label for="email">メールアドレス</label>
450
+
451
+ <input type="email" id="email" name="email"/>
452
+
453
+ </div>
454
+
455
+ <input type="submit" value="登録"/>
456
+
457
+ </form>
458
+
459
+
460
+
461
+
462
+
463
+ </body>
464
+
465
+ </html>
466
+
467
+
468
+
469
+ ```

2

個人情報漏洩に繋がる記載を編集

2016/10/20 08:30

投稿

kalon
kalon

スコア198

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- define('DSN', 'mysql:host=127.0.0.1;port=3306;dbname=BeginnersTech;charset=utf8;');
23
+ define('DSN', 'mysql:host=127.0.0.1;port=3306;dbname=mydb;charset=utf8;');
24
24
 
25
25
  define('DB_USER', 'C9_USER');
26
26
 
@@ -104,7 +104,7 @@
104
104
 
105
105
 
106
106
 
107
- define('DSN', 'mysql:host=127.0.0.1;port=3306;dbname=BeginnersTech;charset=utf8;');
107
+ define('DSN', 'mysql:host=127.0.0.1;port=3306;dbname=mydb;charset=utf8;');
108
108
 
109
109
  define('DB_USER', 'C9_USER');
110
110
 

1

修正の指摘を受けて修正

2016/10/20 07:59

投稿

kalon
kalon

スコア198

test CHANGED
File without changes
test CHANGED
@@ -46,6 +46,8 @@
46
46
 
47
47
 
48
48
 
49
+ $dbh = new PDO(DSN, getenv(DB_USER), DB_PASSWORD);
50
+
49
51
  /*c_numberとidは別処理でインクリメントさせるよていなので手動で入力、ここではわざとc_number=CP4とid=4で固定しています。*/
50
52
 
51
53
  $stmt = $dbh->prepare('insert into BeginnersTech.Companies values ("CP4", "4", ?, ?, ?, ?, ?, ?)');