【发布时间】:2014-04-01 17:23:36
【问题描述】:
目前我的数据库中有 12 行。 在添加所有这些之间我删除了一些,所以 ID 列没有正确升序。
我正在运行以下查询,使用 SQL 创建页面 $page 是 $_GET,它在数字上是(1、2、3 等):
"SELECT *
FROM cms_guestbook
WHERE moderated = 'Y'
ORDER BY id DESC
LIMIT ". (($page - 1) * 5) . ", " . (5 * $page)
添加第 1 页它显示正确,当我 var_dump 这个查询时它显示:LIMIT 0, 5。
添加第 2 页,它无法正确显示。我看到 7 行 (5-12),但我的 var_dump 说:LIMIT 5, 10。
第 3 页也正确显示第 10-12 行。 var_dump 也表示:LIMIT 10, 15。
谁知道我做错了什么?谢谢!
【问题讨论】:
-
$page = ' 1;删除表 cms_guestbook; -- '
-
我认为@Ray 试图让您知道的是您的代码可能会受到 SQL 注入的影响。 owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
-
我熟悉 SQL 注入。这只是一个测试用例。我总是使用 PDO 准备好的语句。
标签: php mysql pagination limit