teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

edit

2020/11/28 08:50

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  sanitize()が何やってるのか分かりませんが(DB問い合わせ時は不要かと思います)
2
- [PDOStatement::fetch](https://www.php.net/manual/ja/pdostatement.fetch.php)は`失敗した場合は常に FALSE を返します。 `ので、「データが取得できたかどうか」を事前に検証すべきかと思います。
2
+ [PDOStatement::fetch](https://www.php.net/manual/ja/pdostatement.fetch.php)は`失敗した場合は常に FALSE を返します。 `ので、返却値を直接参照する前に「データが取得できたかどうか」を事前に検証すべきかと思います。
3
3
 
4
4
  例:
5
5
  ```php
@@ -8,6 +8,8 @@
8
8
  if($rec){
9
9
  $member_mail=$rec['member_mail'];
10
10
  //後略
11
+
12
+
11
13
  }
12
14
 
13
15
  ```

1

edit

2020/11/28 08:50

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -7,9 +7,11 @@
7
7
 
8
8
  if($rec){
9
9
  $member_mail=$rec['member_mail'];
10
+ //後略
10
11
  }
11
12
 
12
13
  ```
13
14
 
14
15
  SQLはcount()でとらない限り、何も返ってこないので(nullとかはあるでしょうけど)
15
- `'member_mail'`を参照しようにもデータがとれてないので、できません。
16
+ `'member_mail'`を参照しようにもデータがとれてないので、できません。
17
+ 「バリデーション」という観点なら`SELECT count(member_mail) as cnt FROM …`などとした上でその結果を検証したほうが明示的かと思います。