这条SQL行有效吗?

时间:2012-09-20 12:30:29

标签: php sql database

尝试编写页面系统,并想知道此代码是否有效......

$get = mysql_query("SELECT * FROM blog_posts ORDER BY `date` DESC WHERE id > '". $startat ."' AND id < '". $nextPage ."' LIMIT 25")

4 个答案:

答案 0 :(得分:4)

不,它无效。 Order By必须接近尾声,不能在中间。

另外你不应该使用mysql_query,它是不安全的。请改用PDO。

SELECT * FROM blog_posts 
WHERE id > '". $startat ."' 
AND id < '". $nextPage ."' 
ORDER BY `date` DESC 
LIMIT 25"

答案 1 :(得分:0)

不,你的条款顺序错误 - 试试这个:

$get = mysql_query("
    SELECT 
        * 
    FROM 
        blog_posts 
    WHERE 
        id > '". $startat ."' 
        AND id < '". $nextPage ."' 
    ORDER BY 
        `date` DESC 
    LIMIT 25");

答案 2 :(得分:0)

您的WHEREORDER BY条款是向后的。尝试:

"SELECT * 
FROM blog_posts 
WHERE id > '". $startat ."' AND id < '". $nextPage ."'
ORDER BY `date` DESC 
LIMIT 25"

我希望$startat$nextPage不会来自任何地方的用户输入。您应该使用PDO或mysqli - 不推荐使用mysql_query。

答案 3 :(得分:0)

不,order by部分应该在where clause之后。

它应该是这样的:

SELECT * 
    FROM 
        blog_posts 
    WHERE 
        id > '". $startat ."' 
        AND id < '". $nextPage ."' 
    ORDER BY 
        `date` DESC 
    LIMIT 25"