PDO 准备语句限制不起作用 [重复]
Posted
技术标签:
【中文标题】PDO 准备语句限制不起作用 [重复]【英文标题】:PDO Prepare Statement Limit Not Working [duplicate] 【发布时间】:2013-06-25 17:37:34 【问题描述】:我试图限制从 SQL 查询返回的结果数量,但由于某种原因它返回 NULL。如果我删除 LIMIT,一切正常。我已经在 Sequel Pro 中测试了该查询,它也适用于 LIMIT。我在这里做错了吗?
public static function getMostViewedPictures($limit = 5)
$dbh = self::connectToDatabase();
$sql = "SELECT
picture.`title`,
picture.`description`,
picture.`slug`,
picture.`image`,
picture.`timestamp`,
picture.`views`,
category.category as category
FROM picture
LEFT JOIN category
ON picture.category_id = category.id
ORDER BY picture.views ASC
LIMIT 0, :limit";
$sth = $dbh->prepare($sql);
$sth->execute(array(':limit' => $limit));
if($results = $sth->fetchAll(PDO::FETCH_OBJ))
$pictures = array();
foreach($results as $result)
$pictures[] = new Picture(
$result->title,
$result->description,
$result->slug,
$result->timestamp,
$result->category,
$result->views,
$result->image
);
return $pictures;
else
return null;
【问题讨论】:
另见PDO prepared statement causes an error in LIMIT statement 也可以查看***.com/questions/2269840/php-pdo-bindvalue-in-limit 【参考方案1】:解决了。
$sth->bindParam(':limit', $limit, PDO::PARAM_INT);
【讨论】:
以上是关于PDO 准备语句限制不起作用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
参数化 PDO 查询和“LIMIT”子句 - 不起作用 [重复]