IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Erreur SQL à l'insertion table relationnelle


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut Erreur SQL à l'insertion table relationnelle
    Bonjour tous !

    Voici l'erreur sql que je reçoit lors de l'insertion des données dans ma table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Voici la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $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());

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Bonjour,

    Fais un echo de ta requête SQL pour qu'on ait plutôt le code SQL qu'un mélange entre PHP et SQL, et le contenu des différentes variables.

    Notamment, vérifie le contenu de mysql_escape_string($_POST['idsiteprovider']), qui, visiblement, contient une valeur qui n'existe pas dans la table provider (d'où l'erreur).
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Voici ma requête sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO `cybernet`.`site` (`id` ,`idsiteinterne` ,`idsiteprovider` ,`idsurvey` ,`site_name` ,`dateactivation` ,`dateinstallation` ,`adressesite` ,`installerpar` ,`idclient` ,`adresseIP` ,`adresseIPmanage` ,`emailsite` ,`idprovider` ,`service`,`idetatsite` ,`idpays` ,`province` ,`matriculeSite` ,`telephone` ,`observation` ,`datecreation`)
    VALUES (NULL , '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
     
    MySQL a répondu: Documentation
    #1452 - 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)
    Voici mes clés étrangères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     KEY `fk_site_provider` (`idprovider`),
      KEY `fk_site_clients` (`idclient`),
      KEY `fk_site_etat_site` (`idetatsite`),
      KEY `fk_site_pays` (`idpays`)

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Et en copiant ta requête tu n'as pas vu que tu essaies d'insérer uniquement des valeurs NULL ou vides ?
    Pas étonnant que les clés étrangères ne soient pas satisfaites !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu n'as aucune valeur dans ta requête ..

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Ah ben forcément, ça ne risque pas de fonctionner...
    Tu insères des chaînes vides dans tous les champs...
    Le problème semble plutôt se situer côté PHP : tes variables sont vides.

    [EDIT] : Ouach, le tir groupé de réponses
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Quel tir groupé !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Oui, je vois c'est à dire que lorsque j'essaie d'insérer à partir de mysql il fonctionne mais il y a aussi des petites erreurs tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1 ligne insérée.
    Identifiant de la ligne insérée : 3
    Warning: #1265 Data truncated for column 'adresseIP' at row 1
    Warning: #1265 Data truncated for column 'adresseIPmanage' at row 1
    Warning: #1264 Out of range value for column 'datecreation' at row 1

  9. #9
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Quand on regarde le résultat du echo, il n'y a visiblement rien dans tes variables PHP...
    Pour expliquer les warnings, il nous faudrait la requête que tu exécutes et qui les génère, ainsi que la structure de la table (visiblement, tu tentes d'insérer des chaines de caractères trop longues pour la longueur prévue dans la base).
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 990
    Billets dans le blog
    6
    Par défaut
    Allez j'en rajoute une couche....

    Voila la poillade de ma journée, mon rayon de soleil c'est MySQL !!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [MySQL] Erreur sql d'insertion
    Par dolphi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/05/2011, 10h32
  2. Erreur SQL : Table/alias non unique
    Par albert69 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/11/2005, 17h31
  3. Insertion dans une table relationnelle
    Par etiennegaloup dans le forum Langage SQL
    Réponses: 22
    Dernier message: 01/11/2005, 17h39
  4. Réponses: 3
    Dernier message: 11/01/2005, 08h20
  5. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo