-1

我有这个查询:

    $query = $dbh->prepare("SELECT * FROM `mylogs` WHERE `username` LIKE :username LIMIT 0 , :limit");
    $query->bindParam(':username', $username, PDO::PARAM_STR);
    $query->bindParam(':limit', $limit, PDO::PARAM_INT);
    $query->execute();

然后我使用 while 循环以表格格式打印出数据库。

太好了,有什么问题?

好吧,我的问题是我想完全反转返回的订单。

我尝试了 ORDER BY 但由于我有一个 WHERE 我不知道在哪里插入它。

任何帮助将不胜感激。

4

1 回答 1

6

要反转ORDER BY子句,请附加DESC到它。像这样:

$query = $dbh->prepare(sprintf('SELECT * FROM `mylogs`
                                WHERE `username`
                                LIKE ?
                                ORDER BY `username`
                                LIMIT %d', intval($limit)));
$query->execute(array($username));

此外,PDOLIMIT X, Y中的限制不能是 placeholders。改为使用这种方式,您可以保证数字是整数。 sprintf()

LIKE补充:除非你真的需要通配符搜索,否则不要使用关键字。

于 2013-09-23T20:36:01.620 回答