Mysql
 sql >> Database >  >> RDS >> Mysql

PDO Bind Params a seconda che esistano nella query

Puoi utilizzare un array con i valori e inviarlo come parametro a execute() metodo.

Se il tipo casting delle variabili che bindParam() offerte non è così importante (non lo stai nemmeno usando...), il che rende la creazione di query molto più semplice poiché puoi riempire l'array quando crei la stringa di query.

Per il tuo esempio:

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