Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2007, 15h46   #1
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
Par défaut Erreur SQL embetante

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
Benjamin42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 15h55   #2
Membre confirmé
 
Avatar de Sieldev
 
Étudiant
Inscription : décembre 2006
Messages : 259
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 259
Points : 285
Points : 285
Essaie de mettre l'ordre des champs ou tu inséres les données:

insert into matable(champ2, champ3) values ('AAA', 'BBB')
Sieldev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 16h09   #3
Membre éprouvé
 
Avatar de nounetmasque
 
Inscription : janvier 2003
Messages : 491
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 491
Points : 488
Points : 488
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."
nounetmasque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 16h27   #4
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
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
Benjamin42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 20h08   #5
Membre éclairé
 
Inscription : février 2005
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 349
Points : 358
Points : 358
salut


Pouvez-vous également donné l'erreur exacte renvoyé avec un exemple bateau?
overider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 20h11   #6
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
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)
Benjamin42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 20h12   #7
Membre confirmé
 
Avatar de Sieldev
 
Étudiant
Inscription : décembre 2006
Messages : 259
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 259
Points : 285
Points : 285
Quand tu executes ta requête tu l'as fait directement dans PHPMyAdmin ou via un script PHP?
Sieldev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 20h14   #8
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
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.
Benjamin42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 20h17   #9
Membre éclairé
 
Inscription : février 2005
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 349
Points : 358
Points : 358
et la requete exacte envoyé?
overider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 20h18   #10
Membre confirmé
 
Avatar de Sieldev
 
Étudiant
Inscription : décembre 2006
Messages : 259
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 259
Points : 285
Points : 285
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)
Sieldev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 20h03   #11
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
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
Benjamin42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h24.


 
 
 
 
Partenaires

Hébergement Web