sql >> Base de Datos >  >> RDS >> Mysql

PDO Bind Params dependiendo de si existen en la consulta

Puede usar una matriz con los valores y enviarla como parámetro al execute() método.

Si la conversión de tipos de las variables que bindParam() ofertas no es tan importante (ni siquiera lo está usando...), eso hace que la creación de consultas sea mucho más fácil, ya que puede completar la matriz cuando crea la cadena de consulta.

Para tu ejemplo:

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