Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de foreign key MySQL /Php my admin

Sujet résolu
    17 juillet 2019 à 14:39:08

    Bonjour, je suis en train de bosser sur un site qui possède pas mal de connexion en base de donnée, et j'ai crée celle ci de manière a avoir une table CLIENT, avec un table TERRAIN ainsi qu'une table PROJET.

    J'ai donc crée CLIENT avec une clé primaire id_client

    et sur la table TERRAIN j'ai donc utilisé un foreign key de la table CLIENT.

    j'essaie donc maintenant de remplir mon TERRAIN avec des données, mais je ne sais pas trop comment m'y prendre pour remplir ma table TERRAIN en faisant attention a la foreign key ! Faut il l'insérer dans la requete ? mettre un champ vide ?

    Désolé je débute.. voila le code de ma requête

                $id=$_SESSION['id'];
                //Variables recu
                $ref_cad=$_POST['ref_cad'];
                $num_adresse3=$_POST['num_adresse3'];
                $code_postal3=$_POST['code_postal3'];
                $ville3=$_POST['ville3'];  
                $rue3=$_POST['rue3'];          
                $sql = $dbh->prepare("INSERT INTO `terrain` VALUES
                                         
                                           ref_cad=:ref_cad,
                                           num_adresse3=:num_adresse3,
                                           code_postal3=:code_postal3,
                                           ville3=:ville3,
                                           rue3=:rue3,                                    
                                           WHERE `terrain`.`id_client` =:id");
               $sql->execute(array('id' => $id,'ref_cad' =>$ref_cad, 'num_adresse3' => $num_adresse3, 
               'code_postal3'=>$code_postal3,'ville3'=> $ville3,'rue3'=>$rue3,))
               or die(print_r($sql->errorInfo()));



    Et voila mon code d'erreur :

    Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ref_cad='a', num_adresse3='a', ' at line 3 ) 1

    -
    Edité par Jerilycan 17 juillet 2019 à 14:39:53

    • Partager sur Facebook
    • Partager sur Twitter
      17 juillet 2019 à 15:58:29

      Bonjour,

      Avant de poser une question merci de faire un effort d'apprentissage et de recherche ...

      Je ne pense pas que quelconque cours, tutoriel, ou forum ait pu présenter une telle syntaxe pour une requête INSERT INTO ...

      La syntaxe de base est :

      INSERT INTO ma_table ( colonne1, colonne2 )
      VALUES ( 'valeur1', 'valeur2' );

      L'erreur afficher vient de là ...

      Sinon, concernant ta clé étrangère, il faut mettre l'id du client comme valeur pour la colonne souhaitée.

      try {
      	$sql = $dbh->prepare("
      		INSERT INTO `terrain` ( ref_cad, num_adresse, code_postal, ville, rue, id_client )
      		VALUES ( :ref_cad, :num_adresse, :code_postal, :ville, :rue, :id );"
      	);
      
      	$sql->execute([
      		'ref_cad' => $_POST['ref_cad'],
      		'num_adresse' => $_POST['num_adresse3'],
      		'code_postal' => $_POST['code_postal3'],
      		'ville' => $_POST['ville3'],
      		'rue' => $_POST['rue3'],
      		'id' => $_SESSION['id'],
      	]);
      }
      catch( Exception $e ) {
      	var_dump( $e );
      }

      Sans remettre en cause ta motivation, je te conseille fortement la lecture du cours MySQL et du cours PHP/MySQL, avant d'aller plus loin (cf. ma signature).

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        17 juillet 2019 à 16:40:15

        Merci beaucoup de ton retour, en effet le problème venait de ma syntaxe un peu archaïque,

        je vais revoir des cours pour ça,

        merci de ton aide :)

        • Partager sur Facebook
        • Partager sur Twitter

        Probleme de foreign key MySQL /Php my admin

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown