Você pode usar um array com os valores e enviá-lo como parâmetro para o
execute()
método. Se o tipo de conversão das variáveis que
bindParam()
ofertas não é tão importante (você nem está usando...), isso torna a construção de consultas muito mais fácil, pois você pode preencher a matriz quando criar a string de consulta. Para o seu exemplo:
$query = "SELECT * from `usertable` where users_active=:users_active";
$params = array(':users_active' => $users_active);
if($mode=="archived") {
$query .= " AND archived=:archived";
$params[':archived'] = $archived;
}
$stmt = $dbpdo->prepare($query);
$stmt->execute($params);