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 fonctionsprintf
.
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