-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));

LIMIT X, Yまた、PDO の制限をプレースホルダーにすることはできません。代わりに使用してくださいsprintf()。この方法で、数値が整数であることを保証できます。

追加:LIKEワイルドカード検索が本当に必要でない限り、キーワードを使用しないでください。

于 2013-09-23T20:36:01.620 に答える