我有一个 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;
}
更新: $numberOfSlides 与问题无关。它总是会返回一定数量的结果。这都是关于$type
:如果它设置为“0”(默认值),那么它基本上会忽略 WHERE 语句的那一部分。如果它设置为“1”或“2”等,那么它只提取该类型的记录。
显然,我可以根据 $type 的值更改 $STH 的值,但我想知道是否有更好的方法。