我正在论坛上工作。要拉出我使用的实际论坛帖子
$query = <<<SQL
SELECT *
FROM forum_forums
WHERE category = :category
ORDER BY sticky DESC, lastAnswer DESC
LIMIT :limit
OFFSET :offset
SQL;
$resource = $db->db->prepare( $query );
$resource->execute(array (
":category" => $_GET['ident3'],
":limit" => $limit,
":offset" => $offset,
));
限制和偏移是定义的变量,但是如果我从查询中删除它们“工作”并获取结果,但是破坏了分页部分,想知道我准备这个查询的方式是否有问题,因为它当我直接在执行函数中使用查询并使用$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
我真的不关心以这种方式运行查询时,它可以工作。
在查询之上我们也有。
try {
$query = <<<SQL
SELECT COUNT(*)
FROM forum_forums
WHERE category = :category
SQL;
$resource = $db->db->prepare( $query );
$resource->execute( array (
":category" => $_GET['ident3'],
));
$total = $resource->fetchColumn();
$limit = 1;
$pages = ceil($total / $limit);
$page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
'options' => array(
'default' => 1,
'min_range' => 1,
),
)));
$offset = ($page - 1) * $limit;