sql_update

La fonction sql_update() met à jour un ou des enregistrements dans une table SQL. Les éléments transmis ne sont pas protégés automatiquement comme avec sql_updateq(), il faut dont faire attention aux injections SQL et utiliser les fonctions sql_quote() pour protéger les contenus quand cela est nécessaire.

La fonction admet 6 paramètres :

  1. $table est la table SQL utilisée,
  2. $exp contient les modifications à réaliser,
  3. $where,
  4. $desc,
  5. $serveur,
  6. $option.

Cette fonction est utilisée principalement pour modifier des valeurs en utilisant la valeur même d’une colonne, tel que :

// ajoute 1 a la colonne
sql_update('table', array('colonne' => 'colonne + 1'));

Lorsque des données ajoutées avec cette fonction sont susceptibles d’avoir des apostrophes ou proviennent de saisies utilisateur, il est important de protéger l’insertion avec sql_quote() :

sql_update('table', array('colonne' => sql_quote($valeur)));

Exemple

Actualiser la colonne « id_secteur » avec l’identifiant des rubriques n’ayant pas de parent :

// fixer les id_secteur des rubriques racines
sql_update('spip_rubriques', array('id_secteur'=>'id_rubrique'), "id_parent=0");

Ajouter un nombre identique de visites aux statistiques de certains articles :

$tous = sql_in('id_article', $liste);
sql_update('spip_visites_articles',
    array('visites' => "visites+$n"),
    "date='$date' AND $tous");

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

Traductions : English, français