Erreur d'insertion

Résolu
djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015 - 9 déc. 2008 à 04:55
djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015 - 9 déc. 2008 à 20:51
Bonjour a tous!

Cela fait un petit moment que j'essai d'insérer des données dans une base de données MySQL. Seulement voila, la notion de classe est particulièrement nouvelle pour moi, et j'ai un petit souci que voici :

- je réalise ma connexion a ma base de données parfaitement
- j'utilise plusieurs classes
- j'ai une fonction de ma classe message qui me permet d'insérer un message dans ma Bd..D qui se nomme "msg":

function insert()
 {
  $id_auteur=$_POST['auteur'];
  $titre=$_POST['titre'];
  $texte=$_POST['news'];
  $type="news";
  $date=date("Y-m-d H:i:s");
  $connect=new Bdd('host', '', '', 'msg'); 
  $sql="select * from message";
  $connect->requete($sql);
  $id=$connect->nblignes()+1;  
  $req = "insert into message VALUES ('$id', '$id_auteur','$titre', '$texte','$date', '$type')";
  $connect->commande($req) or die ("erreur SQL");
  $connect->fermer();
 }

Seulement, lors de l'insertion, j'ai l'erreur suivante :
Erreur requête action insert into message VALUES ('4', '1','fdsfqsdf', 'fdfqsdfqsdf','2008-12-08 23:35:38', 'news')
Je pensait que c'était la synthaxe de mon insert into qui était incorecte mais je commence sérieusement à me poser des questions .
Je précise que j'ai affiché les valeurs pour déterminer si oui ou non elles étaient stockées dans mes différentes variables, et aparament elles le sont. Seulement, l'insertion dans la base de données ne se fait pas.
Quelqu'un saurait-il ou serait le problème et pourrait-il m'expliquer comment je pourrais le résoudre s'il vous plait ?

Merci d'avance !!!

4 réponses

djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015
9 déc. 2008 à 20:51
Le message que je recoit me signale que mes variables n'ont pas été pris en compte. Voila la correction que j'ai apporté à ma fonction de classe et ça semble passer pas mal :

pour le insert, j'ai remplacé
$req = "insert into message VALUES ('$id', '$id_auteur','$titre', '$texte','$date', '$type')";
par
$req="insert into message values('".$id."','".$this->id_auteur."', '".$this->titre."', '".$this->texte."','".$this->date."','".$this->type."')";

Et la plus aucune erreur, enfin semble t-il car aparament malgré l'insertion qui est fait, le champ id de message est inconnu par php !

Mais c'est pas trrop grave l'important c'est que sa passe, et si je trouve ou se trouve l'erreur, je posterai la solution corrigée.
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 déc. 2008 à 05:28
salut

normalement, on enumere les champs de la table :
insert into `table`(`champ1`, `champ2`, ...) VALUES (...), (...), ....

ensuite, juste un conseil : connecte toi a ta base de donnee une seule fois par page, et deconnecte toi une seule fois aussi (a la fin)
0
djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015
9 déc. 2008 à 13:05
Salut et merci


Mais ça ne marche toujours pas ! De un, je pense que ça ne sert à rien d'énumérer les champs de la base de données.


insert into table values ('".$variab."','".$variab."') marche très bien

Ensuite, je me connecte à la base qu'une fois . J'utilise juste une variable avec les paramètres de connexion dans chaque fonction de mes classes où c'est nécessaire pour effectuer mes opérations sinon sa ne marcherai pas. C'est un peu sa l'objet en php

Ma question demeure donc : ppourquoi cet erreur ci plus haut ?

Si vous avez d'autres idées, merci de m'en faire part !!!
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 déc. 2008 à 16:50
mysql_error() te donne quoi ?
0
Rejoignez-nous