Erreur SQL a l'insersion table relationnelles
glodybiss
Messages postés
509
Statut
Membre
-
NDOUKI Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
NDOUKI Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Bonjour tous !
Voici l'erreur sql que je reçoit lors de l'insertion des données dans ma table.
Voici l'erreur sql que je reçoit lors de l'insertion des données dans ma table.
Cannot add or update a child row: a foreign key constraint fails ('cybernet'.'site', CONSTRAINT 'fk_site_provider' FOREIGN KEY ('idprovider') REFERENCES 'provider' ('id') ON DELETE NO ACTION ON UPDATE NO ACTION)
2 réponses
-
Salut,
Une erreur dans tes clés étrangères de tes tables, mais sans requête et plus d'explication, j'peux pas t'en dire plus...-
Voici ma requête, j'insère dans la table site
$sql = 'INSERT INTO 'site' ('id' ,'idsiteinterne' ,'idsiteprovider','site_name' ,'dateactivation' ,'dateinstallation' ,'adressesite' ,'installerpar' ,'idclient' ,'adresseIP' ,'adresseIPmanage' ,'emailsite' ,'idprovider' ,'service' ,'idetatsite' ,'idpays' ,'province' ,'telephone' ,'observation' ,'datecreation') VALUES (NULL, "'.mysql_escape_string($_POST['idsiteinterne']).'", "'.mysql_escape_string($_POST['idsiteprovider']).'","'.mysql_escape_string($_POST['site_name']).'", "'.mysql_escape_string($_POST['dateinstallation']('d-m-Y')).'" , "'.mysql_escape_string($_POST['dateactivation']('d-m-Y')).'", "'.mysql_escape_string($_POST['adressesite']).'", "'.mysql_escape_string($_POST['installerpar']).'", "'.mysql_escape_string($_POST['idclient']).'", "'.mysql_escape_string($_POST['adresseIP']).'", "'.mysql_escape_string($_POST['adresseIPmanage']).'", "'.mysql_escape_string($_POST['emailsite']).'", "'.mysql_escape_string($_POST['idprovider']).'","'.mysql_escape_string($_POST['service']).'", "'.mysql_escape_string($_POST['province']).'", "'.mysql_escape_string($_POST['idetatsite']).'", "'.mysql_escape_string($_POST['province']).'", "'.mysql_escape_string($_POST['telephone']).'", "'.mysql_escape_string($_POST['observation']).'", "'.date('Y-m-d h:i:s').'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); -
-
-
-
slt,
si ton id est auto-incrément, tu n'as pas besoin de l'insérer.
donc commence par enlever ton id et le null
et ensuite précise nous tes clés primaires et étrangères-
Voici mes clés étrangères:
KEY 'fk_site_provider' ('idprovider'), KEY 'fk_site_clients' ('idclient'), KEY 'fk_site_etat_site' ('idetatsite'), KEY 'fk_site_pays' ('idpays')
-- Contraintes pour la table 'site' -- ALTER TABLE 'site' ADD CONSTRAINT 'fk_site_clients' FOREIGN KEY ('idclient') REFERENCES 'client' ('id') ON DELETE NO ACTION ON UPDATE NO ACTION, ADD CONSTRAINT 'fk_site_etat_site' FOREIGN KEY ('idetatsite') REFERENCES 'etat_site' ('id') ON DELETE NO ACTION ON UPDATE NO ACTION, ADD CONSTRAINT 'fk_site_pays' FOREIGN KEY ('idpays') REFERENCES 'pays' ('id') ON DELETE NO ACTION ON UPDATE NO ACTION, ADD CONSTRAINT 'fk_site_provider' FOREIGN KEY ('idprovider') REFERENCES 'provider' ('id') ON DELETE NO ACTION ON UPDATE NO ACTION; -
-