回答編集履歴

3

見直し

2019/09/16 06:08

投稿

退会済みユーザー
test CHANGED
@@ -16,21 +16,21 @@
16
16
 
17
17
  ```php
18
18
 
19
- if (isset($_POST['userID'])) {
19
+ if (isset($_POST['userID'])) { // DBアクセスに必要な変数が揃っていることをisset()で確認、もしも複数の変数が必要ならここで&&条件ですべて確認しておくとよい
20
20
 
21
- try {
21
+ try { // DBアクセスの処理をこの中に
22
22
 
23
23
  ~~
24
24
 
25
25
  }
26
26
 
27
- catch(PDOException $error) {
27
+ catch(PDOException $error) { // DBアクセス時の例外をココでキャッチ
28
28
 
29
29
  ~~
30
30
 
31
31
  }
32
32
 
33
- catch(Exception $error) {
33
+ catch(Exception $error) { // 起こりにくいかもしれないけどDB以外の部分で例外発生したらココでキャッチ
34
34
 
35
35
  ~~
36
36
 

2

見直し

2019/09/16 06:08

投稿

退会済みユーザー
test CHANGED
@@ -41,3 +41,23 @@
41
41
  ```
42
42
 
43
43
  などとすればよいかと。
44
+
45
+
46
+
47
+ もう一点、
48
+
49
+ ```php
50
+
51
+ $stmt->bindParam('userID', $temp, PDO::PARAM_STR);
52
+
53
+ ```
54
+
55
+ でなく
56
+
57
+ ```php
58
+
59
+ $stmt->bindValue(':userID', $temp, PDO::PARAM_STR);
60
+
61
+ ```
62
+
63
+ だね。[PHP: PDOStatement::bindValue - Manual](https://www.php.net/manual/ja/pdostatement.bindvalue.php)参照。

1

加筆修正

2019/09/16 06:03

投稿

退会済みユーザー
test CHANGED
@@ -5,3 +5,39 @@
5
5
  `isset($_POST['userID'])`で存在チェックをするときは、そういうエラーは出ないものの、
6
6
 
7
7
  おそらくechoの行と`$temp = $_POST['userID'];`の行で参照してそのときのエラーだろうね。
8
+
9
+
10
+
11
+ try以降の処理は、`$_POST['userID']`が存在する時に行うべきで、
12
+
13
+ エラーなどでその処理をしてはいけないのであれば、
14
+
15
+
16
+
17
+ ```php
18
+
19
+ if (isset($_POST['userID'])) {
20
+
21
+ try {
22
+
23
+ ~~
24
+
25
+ }
26
+
27
+ catch(PDOException $error) {
28
+
29
+ ~~
30
+
31
+ }
32
+
33
+ catch(Exception $error) {
34
+
35
+ ~~
36
+
37
+ }
38
+
39
+ }
40
+
41
+ ```
42
+
43
+ などとすればよいかと。