Salut à tous,
Comme le titre est suffisamment explicite, voici mon code...
Code mapage.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $c = new connexion(); echo "<b>Test d'INSERT dans la table TEST1 :</b><br>"; $c->insert("test1", "id, prenom, nom, ville", "'2', 'a', 'b', 'c'"); echo "<br>Fin<BR><BR>";
Code de la fonction de ma classe connexion : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 // T : nom de la table // C : liste des champs // V : valeur à insérer function insert($t, $c="", $v="") { $laRequete="INSERT INTO $t "; // $laRequete est donc : INSERT INTO test1 $laRequete .= "($c) "; // $laRequete est donc : INSERT INTO test1 (id, prenom, nom, ville) $laRequete .= "VALUES ($lesValeurs)"; // $laRequete est enfin : INSERT INTO test1 (id, prenom, nom, ville) VALUES ('2', 'a', 'b', 'c') echo "Avant appel execution $laRequete<br>"; mysql_query($laRequete) or $this->erreur("insert",mysql_error(),mysql_errno()); echo "Après appel execution $laRequete<br>"; }
Résultat obtenu pour l'affichage de mapage.php :
Test d'INSERT array dans la table TEST1 :
Avant appel execution INSERT INTO test1 (id, prenom, nom, ville) VALUES ('2', 'a', 'b', 'c')
ERREUR insert : Duplicate entry '2' for key 1 (ERREUR N° : 1062)
Sachant qu'avant l'exécution, il n'y a rien dans ma table...
Et aprés l'exécution, j'ai bien un tuple correspondant à ce que je veux qui se trouve dans celle-ci...
Il tente alors je ne sais pas pkoi de l'insérer à nouveau une seconde fois d'ou l'erreur !
Si je ne mets pas d'attribut en primary key, il m'insere le tuple 2 fois... Et là vraiment... j'y comprends plus rien
Si vous avez une idée d'où peut provenir le problème j'en serai vraiment content... Sachez que j'ai le même probleme avec la fonction create_table qui prend en paramètre le nom et les attributs et la crée une première fois puis plante de la même manière.
N'y a-t-il pas quelque chose à faire avant mysql_query... Un flush quelque part ou... je ne sais quoi... Ca peut pas venir de mySql ?... Pfff... Je sèche... !
Merci de votre attention !
Partager