我有一个MySQL查询,需要根据传递给它的参数进行更改。听起来很简单,对吧?问题是,如果参数是'0‘,我需要它来获取所有记录。
我该怎么做?
到目前为止我的情况是这样的。
public function getLatestWork($numberOfSlides, $type = 0) {
$params = array();
$params["numberOfSlides"] = $numberOfSlides;
$params["type"] = $type;
$STH = $this->_db->prepare("SELECT slideID
FROM slides
WHERE visible = 'true'
AND type = :type
ORDER BY order
LIMIT :numberOfSlides;");
$STH->execute($params);
$result = $STH->fetchAll(PDO::FETCH_COLUMN);
return $result;
}Update:$numberOfSlides与问题无关。它将始终返回一定数量的结果。这都是关于$type__的:如果它被设置为'0‘(默认值),那么它实际上忽略了WHERE语句的这一部分。如果它被设置为'1‘或'2’等等,那么它只会提取该类型的记录。
显然,我可以根据$STH的值更改$type的值,但我想知道是否有更好的方法。
发布于 2012-05-16 10:18:15
发布于 2012-05-16 10:56:17
public function getLatestWork($numberOfSlides, $type = 0) {
$params = array();
$params["numberOfSlides"] = $numberOfSlides;
$params["type"] = $type;
$STH = $this->_db->prepare("SELECT slideIDFROM slides WHERE visible = 'true' "
. ($type > 0 ? "AND type = :type" : "")
. " ORDER BY order LIMIT :numberOfSlides;");
$STH->execute($params);
$result = $STH->fetchAll(PDO::FETCH_COLUMN);
return $result;
}https://stackoverflow.com/questions/10616458
复制相似问题