La fonction
sql_in()
permet de créer une contrainte sur une colonne utilisant le mot clé
IN
.
Elle se compose de 5 paramètres :
-#
$val
est le nom de la colonne,
-#
$valeurs
est la liste des valeurs, sous forme de tableau ou d’une chaine d’éléments séparés par des virgules. Elles seront protégées par
sql_quote
automatiquement,
-#
$not
permet de définir la négation. Vaut
''
par défaut ; mettre
'NOT'
pour réaliser un
NOT IN
,
-#
$serveur
,
-#
$option
.
On peut l’utiliser ainsi :
$vals = array(2, 5, 8);
// ou $vals = "2, 5, 8";
$in = sql_in('id_table', $vals);
if ($res = sql_select('colonne', 'table', $in)) {
// ...
}
Exemple
Le plugin « Tickets » utilise
sql_in()
pour obtenir le titre d’un ticket uniquement si celui-ci a un statut parmi ceux indiqués :
function inc_ticket_forum_extraire_titre_dist($id_ticket){
$titre = sql_getfetsel('titre', 'spip_tickets', array(
'id_ticket = ' . sql_quote($id_ticket),
sql_in('statut', array('ouvert', 'resolu', 'ferme'))
));
return $titre;
}