回答編集履歴
3
追記
answer
CHANGED
@@ -18,4 +18,10 @@
|
|
18
18
|
$sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $start);
|
19
19
|
$stmt = $pdo->prepare($sql);
|
20
20
|
$stmt->execute();
|
21
|
-
```
|
21
|
+
```
|
22
|
+
|
23
|
+
---
|
24
|
+
|
25
|
+
[一人前のプログラマが行き詰まった時に当たり前にやっているRSAPって何?](http://regonn.github.io/programmer/2015/08/02/rsap.html)
|
26
|
+
|
27
|
+
[新米プログラマが身につけておきたいデバッグに必要な3つのこと](http://regonn.github.io/programmer/2015/07/12/debug.html)
|
2
修正
answer
CHANGED
@@ -14,7 +14,8 @@
|
|
14
14
|
```php
|
15
15
|
<?php
|
16
16
|
$page = filter_input(INPUT_GET, 'page');
|
17
|
+
$start = (int) $page * 5;
|
17
|
-
$sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $
|
18
|
+
$sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $start);
|
18
19
|
$stmt = $pdo->prepare($sql);
|
19
20
|
$stmt->execute();
|
20
21
|
```
|
1
追記
answer
CHANGED
@@ -5,4 +5,16 @@
|
|
5
5
|
|
6
6
|
「?」 に変数を割り当てしたいわけですから、prepare execute の出番ではありませんか?
|
7
7
|
|
8
|
-
ただし、 プレースホルダに ? を使う場合、'' で文字列として割り当てられるため、LIMIT句には利用できません。
|
8
|
+
ただし、 プレースホルダに ? を使う場合、'' で文字列として割り当てられるため、LIMIT句には利用できません。
|
9
|
+
|
10
|
+
---
|
11
|
+
|
12
|
+
以下の場合、`prepare() + execute()` ではなく、`query()` で十分な例ですが、WHERE句で拡張するものだろうから、初めからこのように実装。
|
13
|
+
|
14
|
+
```php
|
15
|
+
<?php
|
16
|
+
$page = filter_input(INPUT_GET, 'page');
|
17
|
+
$sql = sprintf("SELECT pref,city FROM user_data WHERE 1 ORDER BY id DESC LIMIT %d, 5", $page);
|
18
|
+
$stmt = $pdo->prepare($sql);
|
19
|
+
$stmt->execute();
|
20
|
+
```
|