Erreur d'insertion [Résolu]

Signaler
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015
-
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015
-
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

Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015

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.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
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)
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015

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 !!!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
mysql_error() te donne quoi ?