Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PDO Bind Params dependendo se eles existem na consulta


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);