1

你好,

我不太明白这一点,我正在尝试从 MySQL 中提取记录,按时间倒序排列并将结果限制为每页四个(并使用分页来组织页面)。它当前正在返回此错误:

致命错误:第 126 行 /Users/allan/Sites/4is_site/casestudylist.php 中的 SQL

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM studies  ORDER BY date desc WHERE niche = '{$_GET['niche']}' $limit";

分页一直运行良好,就在我尝试添加我遇到问题的 ORDER BY 时。

4

2 回答 2

8

该语法不正确。这应该有效。

$escapedNiche = mysql_real_escape_string($_GET['niche']);
$query = "SELECT * FROM studies WHERE niche = '$escapedNiche' ".
         "ORDER BY date DESC $limit";

供将来参考 - SELECT 语法

于 2009-07-01T05:07:01.627 回答
0

顺便说一句,要转义 $_GET['niche']:

$clean_niche = mysql_escape_string($_GET['niche']);
$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = "SELECT * FROM studies  "
        ."WHERE niche = '{$clean_niche}' "
        ."ORDER BY date desc $limit";

这将通过转义 $_GET['niche'] 中的字符来帮助保护您免受 SQL 注入攻击。

为了提高安全性,请考虑使用绑定参数 (google'em) 和/或 Zend DB 等库函数来访问数据库。

于 2009-07-01T09:37:26.020 回答