У меня есть запрос MySQL, который необходимо изменить в зависимости от того, какие параметры передаются ему. Звучит просто достаточно, не так ли? Проблема в том, что если параметр равен «0», мне нужно, чтобы он захватил ВСЕ записи.MySQL/PDO: выберите разные столбцы в зависимости от параметров
Как это сделать?
Вот что у меня есть.
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 в зависимости от значения типа $, но мне было интересно, есть ли лучший способ.
@ DjangoReinhardt Я изменил свой ответ, если он недостаточно ясен, дайте мне знать, я попробую объяснить. –
Спасибо, я только что заметил! –
Это не работает, BTW :( –