Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDO Bind Params abhängig davon, ob sie in der Abfrage vorhanden sind

Sie können ein Array mit den Werten verwenden und dieses als Parameter an execute() Methode.

Wenn die Typumwandlung der Variablen, die bindParam() bietet ist nicht so wichtig (Sie verwenden es nicht einmal ...), das macht das Erstellen von Abfragen viel einfacher, da Sie das Array füllen können, wenn Sie die Abfragezeichenfolge erstellen.

Für Ihr Beispiel:

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