sql_in

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;
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 31/05/10

Traductions : English, français