13.12.3 SearchAccount::addFilter()

Cette méthode permet d'ajouter des filtres sur les caractéristiques des comptes.

13.12.3.1 Description

void addFilter( string             $filter, 
                [string|int|double $args…])

La recherche effectuée avec la classe SearchAccount porte sur la table users. Les filtres ajoutés doivent donc porter sur une ou plusieurs des colonnes de cette table, soit :

  • login,
  • firstname,
  • lastname,
  • mail,
  • accounttype,
  • status.

13.12.3.1.1 Avertissements

Aucun

13.12.3.2 Liste des paramètres

(string) filter

Partie filtre de la recherche, cette partie doit être soit une chaîne de caractères contenant du SQL, soit une chaîne formatée celle-ci est alors complétée avec les valeurs passées dans les arguments suivants. Attention : Le point suivant est à prendre en compte :

  • injections SQL : le premier argument de la méthode addFilter est ajouté tel quel dans la requête SQL, il est donc possible qu'il puisse déclencher une injection SQL. Les données doivent être échappées (par exemple à l'aide de pg_escape_string),
(string|int|double) value
Valeurs qui sont insérées à la partie filter à l'aide de la fonction sprintf.
Note : Cet argument doit être répété autant de fois que nécessaire en fonction du format du filtre.
Attention : Les valeurs des paramètres sont échappés à l'aide de la fonction pg_escape_string.
Attention : Dans le cas de l'utilisation d'un opérateur à base d'expression régulière, il faut utiliser la fonction preg_quote sans quoi les valeurs peuvent rendre l'expression régulière invalide.

13.12.3.3 Valeur de retour

void

13.12.3.4 Erreurs / Exceptions

Aucune

13.12.3.5 Historique

Aucun

13.12.3.6 Exemple

Recherche sur les mails contenant george :

$mailExpr='george';
$searchAccount = new SearchAccount();
$searchAccount->addFilter("mail ~ '%s'", preg_quote($mailExpr)); // filtre les mail qui contiennent george
$accountList = $searchAccount->search();
foreach ($accountList as $account) {
    printf("\t %s => %s\n", $account->login, $account->mail);
}

Résultat :

george.abitbol => george.abitbol@classe-americaine.com
georges.de.hanovre => georges.V.de.hanovre@hanovre.com
georgette.agutte => georgette.agutte@paris.com

13.12.3.7 Notes

Aucunes

13.12.3.8 Voir aussi

×
nouveauté