回答編集履歴

1

図解をわかりやすく変更・サンプルコードを追加

2017/08/01 12:06

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -2,33 +2,21 @@
2
2
 
3
3
 
4
4
 
5
- 一方、PDOStatement::fetchColumn() は取得した次の行のうち、**指定された列(カラム)の値**を返すメソッドです。
5
+ 一方、PDOStatement::fetchColumn() は取得した次の行のうち、さらに**指定された列(カラム)の値**を抜き出して返すメソッドです。
6
6
 
7
7
 
8
8
 
9
9
  ```
10
10
 
11
- □□□□□□□□□
11
+ △○♢☆
12
12
 
13
- △△△△△△△△△
13
+ ○♢☆
14
14
 
15
- ○○○○○○○○○
15
+ □△♢☆
16
16
 
17
- ♢♢♢♢♢♢♢♢♢
17
+ □△○
18
18
 
19
- ☆☆☆☆☆☆☆☆☆☆
20
-
21
-
22
-
23
-
24
-
25
- fetch()
19
+ □△○♢☆
26
-
27
-
28
-
29
-
30
-
31
- □□□□□□□□□□
32
20
 
33
21
  ```
34
22
 
@@ -36,30 +24,62 @@
36
24
 
37
25
  ```
38
26
 
39
- □□□□□□□□□□
27
+ △○♢☆ →fetch()→ △○♢☆
40
28
 
41
- △△△△△△△△△
29
+ ▶ □○♢☆
42
30
 
43
- ○○○○○○○○○
31
+ □△♢☆
44
32
 
45
- ♢♢♢♢♢♢♢♢♢
33
+ □△○
46
34
 
47
- ☆☆☆☆☆☆☆☆☆
35
+ □△○♢
48
-
49
-
50
-
51
-
52
-
53
- fetchColumn()
54
-
55
-
56
-
57
-
58
-
59
-
60
36
 
61
37
  ```
62
38
 
63
39
 
64
40
 
41
+ ```
42
+
43
+ □△○♢☆ →fetchColumn(0)→ □
44
+
45
+ ▶ □△○♢☆
46
+
47
+ □△○♢☆
48
+
49
+ □△○♢☆
50
+
51
+ □△○♢☆
52
+
53
+ ```
54
+
55
+
56
+
65
- つまり `$result = PDOStatement::fetchColumn(0)` は `$result = PDOStatement::fetch()[0]` と同義です。
57
+ つまり `PDOStatement::fetchColumn(0)` は `PDOStatement::fetch()[0]` と同義です。
58
+
59
+
60
+
61
+ 大したことではありませんが、`SELECT user_id FROM ...` などと1つのカラムを取得するときにコードが多少すっきり書けるメリットがあります。
62
+
63
+
64
+
65
+ ```php
66
+
67
+ if (!$row = $stmt->fetch()) {
68
+
69
+ die('ユーザーがみつかりません!!');
70
+
71
+ } else {
72
+
73
+ $user_id = $row[0];
74
+
75
+ }
76
+
77
+
78
+
79
+ if (!$user_id = $stmt->fetchColumn()) {
80
+
81
+ die('ユーザーがみつかりません!!');
82
+
83
+ }
84
+
85
+ ```