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 : -# $table est la table SQL utilisée, -# $exp contient les modifications à réaliser, -# $where, -# $desc, -# $serveur, -# $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