|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 5 ![]() |
Bonjour,
Je suis developpeur php/mysql et j'avoue tomber sur une erreur qui me bloque. Je dispose d'une table dans ma base de donnée avec trois champs qu'on appelera ici champ1, champ2 et champ3. champ1 est une clé primaire en auto_increment Lorsque je fais la requete suivante: INSERT INTO matable SET champ2="AAA", champ3="BBB" J'ai le message d'erreur suivant: Duplicate entry 'AAA' for key 1 Le problème étant que la valeur 'AAA' correspond au champ2 qui lui n'est pas une clé primaire. La seule clé primaire est champ1 qui est auto incrémentée. Auriez vous quelques idées? Merci d'avance Benjamin |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() ![]() Étudiant Inscription : décembre 2006 Messages : 259 ![]() |
Essaie de mettre l'ordre des champs ou tu inséres les données:
insert into matable(champ2, champ3) values ('AAA', 'BBB') |
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : janvier 2003 Messages : 491 ![]() |
Montres nous ton script de création de ta table stp si la première solution ne fonctionne pas.
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant." |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 5 ![]() |
Voici la table réelle:
CREATE TABLE `messages` ( `id` int(10) unsigned NOT NULL auto_increment, `id_expediteur` smallint(5) unsigned NOT NULL, `id_destinataire` smallint(5) unsigned NOT NULL, `date` date NOT NULL, `titre` varchar(100) NOT NULL, `message` text NOT NULL, `etat` varchar(7) NOT NULL, `jours` smallint(3) NOT NULL default '30', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3425175 ; dans l'exemple, id => champ1 id_expediteur => champ2 id_destinataire => champ3 A priori le problème est toujours rencontré en spécifiant l'ordre d'insertion |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : février 2005 Messages : 349 ![]() |
salut
Pouvez-vous également donné l'erreur exacte renvoyé avec un exemple bateau? |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 5 ![]() |
le message exact se resume à :
Duplicate entry '14723' for key 1 14723 correspond à la valeur de id_destinataire (et donc champ3 et non champ2 dans l'exemple, mais bon ça ne change rien au probleme) |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() ![]() Étudiant Inscription : décembre 2006 Messages : 259 ![]() |
Quand tu executes ta requête tu l'as fait directement dans PHPMyAdmin ou via un script PHP?
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 5 ![]() |
via php.
Par contre je viens de me rendre compte d'une chose qui est encore plus embetante. Le message d'erreur ne survient pas à chaque fois. Je vais tenter de savoir ce qui peut causer ce changement dans mon script, je vous reviens dessus. |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : février 2005 Messages : 349 ![]() |
et la requete exacte envoyé?
|
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() ![]() Étudiant Inscription : décembre 2006 Messages : 259 ![]() |
Pourrais-tu nous montrer la partie de ton script PHP ou tu fais ta requête et le tableau ou tu stockes les données avant de les insérer?
Pour voir si ta requête SQL fonctionne execute la directement dans PHPMyAdmin. Il se peut que c'est un probléme avec le foreach() ou le while() (bien sur si il y en a) |
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 5 ![]() |
C'est bon le problème est réglé. J'ai tout simplement recréé la table (exportation de la structure de l'actuelle, puis execution pour la recréer), puis j'ai remis toutes les données de la table et ça marche...
Merci en tout cas pour vos suggestions |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com