Insertion et modification d'un tuple
siananox
-
siananox -
siananox -
Bonjour,
Je suis en plein devoir PHP
On me demande d'insérer une note dans une base (appelons là "etudiants"), ça fonctionne très bien, voici le code que je tape :
//Insertion d'une nouvelle note étudiant
$reponse = $bd->exec('INSERT INTO notes (Note, IdEtudiant, IdUE)
VALUES(\'12\',\'30001459\',\'1008\')');
echo "insertion réussie";
L'autre question c'est la modification d'une note, et là le localhost ne veut rien savoir ...
Je tape ça :
//Correction de la note d'un étudiant
$reponse = $bd->exec('UPDATE notes
SET Note=\'19\', IdEtudiant=\'35010192\', IdUE=\'1008\'');
echo "modification réussie";
Il me répond ça ... :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '30001459-1008' for key 'PRIMARY'' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\my portable files\connexion.php:44 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\my portable files\connexion.php(44): PDO->exec('INSERT INTO not...') #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\my portable files\connexion.php on line 44
Merci de vos réponses, je désespère :'(
Je suis en plein devoir PHP
On me demande d'insérer une note dans une base (appelons là "etudiants"), ça fonctionne très bien, voici le code que je tape :
//Insertion d'une nouvelle note étudiant
$reponse = $bd->exec('INSERT INTO notes (Note, IdEtudiant, IdUE)
VALUES(\'12\',\'30001459\',\'1008\')');
echo "insertion réussie";
L'autre question c'est la modification d'une note, et là le localhost ne veut rien savoir ...
Je tape ça :
//Correction de la note d'un étudiant
$reponse = $bd->exec('UPDATE notes
SET Note=\'19\', IdEtudiant=\'35010192\', IdUE=\'1008\'');
echo "modification réussie";
Il me répond ça ... :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '30001459-1008' for key 'PRIMARY'' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\my portable files\connexion.php:44 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\my portable files\connexion.php(44): PDO->exec('INSERT INTO not...') #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\my portable files\connexion.php on line 44
Merci de vos réponses, je désespère :'(
A voir également:
- Insertion et modification d'un tuple
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
6 réponses
Bonjour,
Il semblerait que tu passes plusieurs fois dans ton code qui fait l'insert.
Duplicate entry '30001459-1008' for key 'PRIMARY'' indique que tes clés primaires IdEtudiant-IdUE existent déjà dans la BDD, donc l'insert te sort l'erreur car tu as déjà une ligne avec IdEtudiant=30001459 et avec IdUE = 1008.
Rajoute une condition pour faire ton insert qu'une seule fois.
Il semblerait que tu passes plusieurs fois dans ton code qui fait l'insert.
Duplicate entry '30001459-1008' for key 'PRIMARY'' indique que tes clés primaires IdEtudiant-IdUE existent déjà dans la BDD, donc l'insert te sort l'erreur car tu as déjà une ligne avec IdEtudiant=30001459 et avec IdUE = 1008.
Rajoute une condition pour faire ton insert qu'une seule fois.
Encore mieux: au lieu du insert utilises REPLACE, si la ligne n'existe pas elle est créée et si elle existe elle est mise à jour :
ça devrait lever ton erreur. Sinon, joints ton code en utilisant la balise code associée.
REPLACE INTO notes
SET Note= ‘12′,
IdEtudiant = '30001459',
IdUE = '1008'
ça devrait lever ton erreur. Sinon, joints ton code en utilisant la balise code associée.
Merci mille fois de tes réponses !
Le soucis c'est que je dois clairement distinguer l'insertion de la modification dans mon devoir
Le soucis c'est que je dois clairement distinguer l'insertion de la modification dans mon devoir
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question