La fonction sql_insertq()
permet de réaliser une insertion dans la base de données. Les valeurs transmises non numériques seront protégés par des fonctions adaptées à chaque gestionnaire de bases de données pour gérer les apostrophes. La fonction retourne si possible le numéro de l’identifiant de clé primaire inséré.
La fonction admet 5 paramètres :
-
$table
est le nom de la table SQL, -
$couples
est un tableau associatif nom / valeur, -
$desc
, -
$serveur
, -
$option
.
Elle s’utilise simplement comme ceci :
$id = sql_insertq('table', array('colonne'=>'valeur'));
Exemple
Les fonctions insert_xx()
tel que insert_article()
présente dans ecrire/action/editer_article.php permettent de créer des insertions en base de données pour les objets concernés, en gérant les valeurs par défaut et en appelant le pipeline pre_insertion concerné. Ces fonctions retournent l’identifiant alors créé.
Ces fonctions exécutent donc, après le pipeline pre_insertion
la fonction sql_insertq()
. Puis dans la foulée, si un auteur est identifié, l’article est lié à cet auteur :
$id_article = sql_insertq("spip_articles", $champs);
// controler si le serveur n'a pas renvoye une erreur
if ($id_article > 0 AND $GLOBALS['visiteur_session']['id_auteur']) {
sql_insertq('spip_auteurs_articles', array(
'id_auteur' => $GLOBALS['visiteur_session']['id_auteur'],
'id_article' => $id_article));
}