回答編集履歴
4
コメントの返答を追加
test
CHANGED
@@ -11,6 +11,32 @@
|
|
11
11
|
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
|
12
12
|
|
13
13
|
```こんな感じ?
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
コメントに答えます
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
マニュアルの[代入演算子](http://php.net/manual/ja/language.operators.assignment.php)のところにはこんな例題が載ってます。
|
22
|
+
|
23
|
+
```php
|
24
|
+
|
25
|
+
<?php
|
26
|
+
|
27
|
+
$a = ($b = 4) + 5; // $a は 9 に等しくなり、$b には 4 が代入されます
|
28
|
+
|
29
|
+
?>
|
30
|
+
|
31
|
+
```つまり、`($b = 4)`と書くとその部分は`4`だとみなされる訳です。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
よって、`($row = $stmt->fetch(PDO::FETCH_ASSOC))`と書くと、`$stmt->fetch(PDO::FETCH_ASSOC)`の結果がwhileの評価式となります。そして$rowにも`$stmt->fetch(PDO::FETCH_ASSOC)`の結果が入るということになります。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
そして、`fetch`が失敗すると、`false`を返しますので、ループが終了する訳です。
|
14
40
|
|
15
41
|
|
16
42
|
|
3
追記
test
CHANGED
@@ -11,3 +11,37 @@
|
|
11
11
|
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
|
12
12
|
|
13
13
|
```こんな感じ?
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
追記
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
よくよく読んでみると、ループである必要はないですね。
|
22
|
+
|
23
|
+
```php
|
24
|
+
|
25
|
+
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
26
|
+
|
27
|
+
if ($row) {
|
28
|
+
|
29
|
+
$_SESSION ['customer'] = [
|
30
|
+
|
31
|
+
'id' => $row ['id'],
|
32
|
+
|
33
|
+
'name' => $row ['name'],
|
34
|
+
|
35
|
+
'address' => $row ['address'],
|
36
|
+
|
37
|
+
'login' => $row ['login'],
|
38
|
+
|
39
|
+
'password' => $row ['password']
|
40
|
+
|
41
|
+
];
|
42
|
+
|
43
|
+
}
|
44
|
+
|
45
|
+
```
|
46
|
+
|
47
|
+
とこんな感じですね。まあ、同じ`login`と`password`の人が複数いる場合、最初に`fetch`した人になりますが。
|
2
fetchのパラメーターを追加
test
CHANGED
@@ -8,6 +8,6 @@
|
|
8
8
|
|
9
9
|
↓↓↓
|
10
10
|
|
11
|
-
while ( $row = $stmt->fetch() ) {
|
11
|
+
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
|
12
12
|
|
13
13
|
```こんな感じ?
|
1
変更
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
なんか、ループの中がツッコミどころがありすぎますが、
|
2
|
+
|
3
|
+
表題の回答だけだとすると、
|
4
|
+
|
1
5
|
```php
|
2
6
|
|
3
7
|
foreach ( $stmt->fetchAll () as $row ) {
|
@@ -6,4 +10,4 @@
|
|
6
10
|
|
7
11
|
while ( $row = $stmt->fetch() ) {
|
8
12
|
|
9
|
-
```
|
13
|
+
```こんな感じ?
|