我有这个问题:
$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,我不确切知道在哪里插入它。
任何帮助都将受到极大的赞赏。
答案 0 :(得分: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));
此外, PDO 中LIMIT X, Y
的限制不能是占位符。请改用sprintf()
,这样就可以保证数字为整数。
添加:除非您确实需要通配符搜索,否则请勿使用LIKE
关键字。