重複の可能性:
LIMITのPHP PDO bindValue
私は非常にうまく機能するこのコードを持っています。
if (array_key_exists('cat', $_GET) === TRUE) {
$category = $_GET['cat'];
} else {
$category = '.*';
}
$conn = new PDO('mysql:host=localhost;dbname=news', 'root', '');
$stmt = $conn->prepare('SELECT * FROM stories
WHERE category RLIKE :cat
ORDER BY score DESC LIMIT 0, 25');
$stmt -> execute(array(
'cat' => $category,
));
$result = $stmt->fetchAll();
ご覧のとおり、getリクエストからカテゴリを取得し、データベースでそのカテゴリのすべてを検索します。
また、getリクエストでページを定義できるように少し追加しようとしています。クエリは、ページが1つ増えるごとに25行後に開始されます。
これが私が書いたものです:
if (array_key_exists('cat', $_GET) === TRUE) {
$category = $_GET['cat'];
} else {
$category = '.*';
}
if (array_key_exists('page', $_GET) === TRUE) {
$page = intval($_GET['page'])*25;
} else {
$page = 0;
}
$conn = new PDO('mysql:host=localhost;dbname=news', 'root', '');
$stmt = $conn->prepare('SELECT * FROM stories
WHERE category RLIKE :cat
ORDER BY score DESC LIMIT :page, 25');
$stmt -> execute(array(
'cat' => $category,
'page' => $page
));
$result = $stmt->fetchAll();
しかし現在、ページが何であるか、またはカテゴリがあるかどうかに関係なく、クエリは何も返しません。
多分私は整数を正しく扱っていません。なぜこの結果が得られるのか、何か考えはありますか?