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 :

  1. $val est le nom de la colonne,
  2. $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,
  3. $not permet de définir la négation. Vaut '' par défaut ; mettre 'NOT' pour réaliser un NOT IN,
  4. $serveur,
  5. $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