Ajout d’enregistrement dans une table externe
Bonjour,
Sous SPIP 3.0.5, j’ai ajouté via PhpMyAdmin une table nommée spip_annonces.
Lorsque j’utilise une boucle boucle_xx(ANNONCES) pour lire les données de la table, tout va bien. Mais je ne parviens pas à ajouter d’enregistrement via la fonction sql_insertq.
Voici la syntaxe que j’utilise :
$id = sql_insertq(’spip_annonces’, array(’email’=>$email, ’mot-de-passe’=>$mot_de_passe, ’date_annonce’=>$date)) ;
J’ai déclaré la table dans mes_options.php (syntaxe ci-dessous, issue de http://programmer3.spip.net/Qu-est-ce-qu-un-pipeline et http://programmer3.spip.net/declarer_tables_principales), mais rien n’y fait.
J’ai pensé que l’erreur était peut-être \’ dans les déclarations MySQL des ENUM et les ai remplacé par des `, mais non... J’ai aussi remplacé ci-dessus ’spip_annonces’ par ’annonces’, non plus...
Voyez-vous où je me plante ? Et comment puis-je vérifier que ma table est bien déclarée ? Merci pour votre aide éventuelle !
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
$GLOBALS['spip_pipeline']['declarer_tables_principales'] .= "|annonces_declarer_tables_principales";
function annonces_declarer_tables_principales($tables_principales){
// Declaration de la table spip_annonces
$tables_principales['spip_annonces'] = array(
'field'=> array(
'id_annonce'=>'INT UNSIGNED NOT NULL AUTO_INCREMENT',
'email'=>'VARCHAR(50) NOT NULL',
'telephone'=>'VARCHAR(10)',
'mot_de_passe'=>'TINYBLOB NOT NULL',
'date_annonce'=>'DATE NOT NULL',
'date_disponibilite'=>'DATE',
'loyer'=>'SMALLINT UNSIGNED',
'charges'=>'SMALLINT UNSIGNED',
'nature'=>'TINYINT UNSIGNED',
'colocation_acceptee'=>'ENUM(\'oui\', \'non\')',
'surface'=>'TINYINT UNSIGNED',
'a_pied'=>'TINYINT UNSIGNED',
'a_velo'=>'TINYINT UNSIGNED',
'en_transport'=>'TINYINT UNSIGNED',
'garage_a_velo'=>'ENUM(\'oui\', \'non\')',
'descriptif'=>'TEXT',
'valide'=>'ENUM(\'valide\',\'en_cours\', \'rejet\')'),
'key' =>array('PRIMARY KEY'=>'id_annonce')
);
return $tables_principales;
}
?>