SQLSTATE[23000] Integrity constraint violation: 1452
Résolu
drenfa
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
drenfa Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
drenfa Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai un problème lors d'un update d'une base de donnée avec celle-ci:
Erreur !: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`stage`.`cours`, CONSTRAINT `cours_instruments_FK` FOREIGN KEY (`id_instruments`) REFERENCES `instruments` (`id`))
Voilà ou se ma requête SQL avec les donnée du formulaire:
Extrait du formulaire d'où vient l'erreur :
Erreur !: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`stage`.`cours`, CONSTRAINT `cours_instruments_FK` FOREIGN KEY (`id_instruments`) REFERENCES `instruments` (`id`))
Voilà ou se ma requête SQL avec les donnée du formulaire:
function updateCours($idCours,$nom,$agemini,$agemaxi,$nbplaces,$instruments,$type_cour) {
try {
$cnx = connexionPDO();
$req = $cnx->prepare("update cours set libelleCour=:libelleCour, agemini=:agemini, agemaxi=:agemaxi, nbplaces=:nbplaces, id_instruments=(Select id from instruments where id=:id_instruments), id_type_cour=(Select id from type_cour where id=:id_type_cour) where cours.id=:idCours");
$req->bindValue(':libelleCour', $nom, PDO::PARAM_STR);
$req->bindValue(':agemini', $agemini, PDO::PARAM_INT);
$req->bindValue(':agemaxi', $agemaxi, PDO::PARAM_INT);
$req->bindValue(':nbplaces', $nbplaces, PDO::PARAM_INT);
$req->bindValue(':id_instruments', $instruments, PDO::PARAM_INT);
$req->bindValue(':id_type_cour', $type_cour, PDO::PARAM_INT);
$req->bindValue(':idCours', $idCours, PDO::PARAM_INT);
$resultat = $req->execute();
} catch (PDOException $e) {
print "Erreur !: " . $e->getMessage();
die();
}
return $resultat;
}
Extrait du formulaire d'où vient l'erreur :
<label for="libelleInstru">Nom Instrument: </label>
<span class="error-message"></span>
<select name="libelleInstru" id="libelleInstru">
<?php for ($i = 0; $i < count($getInstrument); $i++){?>
<option value="libelleInstru">
<?=$getInstrument[$i]["libelleIns"];}?>
</option>
</select> avec $instruments = $nomInstru;et
$nomInstru = $_POST['libelleInstru'];pour envoyer à la fonction
A voir également:
- Mysql 1452
- Sqlstate 23000 - Meilleures réponses
- Cannot add or update a child row: a foreign key constraint fails - Meilleures réponses
- Access violation at address 00000 read of address 00000 ✓ - Forum Logiciels
- SQLSTATE[23000]: Integrity constraint violation: 1048 ✓ - Forum PHP
- Erreur ! SQLSTATE[23000]: Integrity constraint violation: 10 ✓ - Forum PHP
- Secure boot violation acer - Forum PC portable
- Nql 23000 - Forum Google Chrome
3 réponses
je te rappelle que tu as déjà ouvert eu de discussion pour le même problème est que le souci se situe au niveau de ta boucle for...
C'est le value de tes option qui n'est pas bon....
tu ne renvoie donc pas les bonnes valeurs dans ta requête...
C'est le value de tes option qui n'est pas bon....
tu ne renvoie donc pas les bonnes valeurs dans ta requête...
drenfa
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
C'est vrai je n'ai pas eu le réflexe d'utiliser la boucle foreach
Bonjour,
Je n'ai pas essayé de tout décoder mais une observation :
pourquoi chercher l'id si on l'a ;-)
pareil pour typ_cours
Je n'ai pas essayé de tout décoder mais une observation :
id_instruments=(Select id from instruments where id=:id_instruments)
pourquoi chercher l'id si on l'a ;-)
pareil pour typ_cours