Partage
  • Partager sur Facebook
  • Partager sur Twitter

impossible de relie mon site a ma base de donné

mysql

    5 juin 2018 à 2:11:59

    bonjour 

    voila je viens vers vous car j'ai un problème ,impossible de récupérer le formulaire html que j'ai crée 

    je voudrais récupérer les info pour les insérer dans ma base de donné mysql 

    j'ai crée une page php puit j'ai ajouter un include dans ma page html

    je travaille sous uwamp 

    voici le code :


    $con= mysqli_connect('localhost ' , 'root' , 'root');
     
    mysqli_select_db($con, 'ma bdd');
    if ("con")  echo "echec";
    mysqli_query('INSERT INTO `ma table` (nom,email,adresse)VALUES (['$nom'],['$email'],['$adresse'])');

     il me sort une erreur a toutes les lignes.

    merci cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2018 à 6:29:19

      Bonjour,

      Le string de connexion semble erroné en ligne 1 : quel est le nom de la base de données ?

      Voir la doc : http://php.net/manual/fr/function.mysqli-connect.php

      A+

      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2018 à 1:03:06

        bonjour 

        je ne vois pas se que ses string je vien de commencer a apprendre a codée

        pouvez vous m'en dire un peu plus le nom de ma base de donné c'est prop-vehi

        apparemment c'est a la ligne 5 ses le "$nom" qui comporte une erreur j'ai regarder un  tuto sur youtube

        ses exactement pareil sauf que pour lui sa marche et pour moi sa marche pas

        merci cordialement 

        -
        Edité par BoubouAlba 8 juin 2018 à 3:04:00

        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2018 à 5:14:11

          Salut, qlq trucs, c'est pas très sécurisé tu risque les injections SQL (Des personnes pourront dump ta base de donné et volé des informations), après, tu semble pas définir tout se que tu as mis dans l'insertion, je pourrais avoir ton formulaire html stp ? Merci
          • Partager sur Facebook
          • Partager sur Twitter
            11 juin 2018 à 2:03:24

            bonjour

            voila mon formulaire

            <form method="post" action="connect.php">
            
            <br />
            
            <h4 class="nom">votre nom<h/4>
            <br />
            <input type="text" name="nom" placeholder="votre nom" />
            <br />
            <br />
            
            <h4 class="email">votre email<h/4>
            <br />
            <input type="email" name="email"  placeholder="votre email" required="required"/>
            <br />
            <br />
            <h4 class="commentaire">adresse<h/4>
            <br />
            <textarea name="adresse" placeholder="adresse "></textarea>
            <br />
            <br />
            <input class="bouton" type="submit" name="valider" value="valider" />
            
            
            </form>
            <br />

            merci cordialement

            • Partager sur Facebook
            • Partager sur Twitter
              12 juin 2018 à 2:12:47

              bonjour

              il y a t'il quelqu'un pour m'aider je suis perdu 

              il y a mon formulaire et mon fichier de connexion php mysql je ne vois pas ou et l'erreur

              voici mon formulaire

              <form method="post" action="connect.php">
              
              <br />
              
              <h4 class="nom">votre nom<h/4>
              <br />
              <input type="text" name="nom" placeholder="votre nom" />
              <br />
              <br />
              
              <h4 class="email">votre email<h/4>
              <br />
              <input type="email" name="email"  placeholder="votre email" required="required"/>
              
              
              
              <br />
              <br />
              <h4 class="commentaire">adresse<h/4>
              <br />
              <textarea name="adresse" placeholder="adresse"</textarea>
              <br />
              <br />
              <input class="bouton" type="submit" name="valider" value="valider" />
              
              
              </form>
              <br />

              voici maintenant mon fichier de connexion qui s'appelle connect.php

              $nom=$_POST['nom'];
              $email=$_POST['email'];
              $adresse=$_POST['adresse'];
              
              $con= mysqli_connect('localhost ' , 'root' , 'root');
               
              mysqli_select_db( 'ma bdd');
              
              mysqli_query ("INSERT INTO ma table (nom,email,adresse)VALUES (['$nom'],['$email'],['$adresse'])" )
              

              puis j'enregistre et la sur mon navigateur il me sort sa:

              merci

              cordialement

              -
              Edité par BoubouAlba 12 juin 2018 à 2:26:23

              • Partager sur Facebook
              • Partager sur Twitter
                13 juin 2018 à 4:12:37

                : https://pastebin.com/Pw7JP4XD (un peu de galères avk openclassrooms mobile ^^)

                Je précise quand même que ton code fait très négligé, par exemple tu vérifie pas si l'email existe déjà, ni si c'est un format email....

                -
                Edité par FrancDurotin 13 juin 2018 à 4:27:22

                • Partager sur Facebook
                • Partager sur Twitter
                  13 juin 2018 à 6:50:26

                  Faut éviter à le faire passer de simple requète procédurale à requète poo à message d'erreur sophistiqué, il débute seulement.

                  Pour le code:
                  $con= mysqli_connect('localhost ' , 'root' , 'root');
                  mysqli_select_db( 'ma bdd');

                  Dans mysqli_select_db() tu dois avoir 2 choses:
                  1. la requète mysqli_connect('localhost ' , 'root' , 'root'); (donc tu peux utiliser la variable $con)
                  2. le nom de la base de donnée

                  Donc suffit de changer:
                  mysqli_select_db( 'ma bdd');
                  par
                  mysqli_select_db($con, 'ma bdd');

                  Faut savoir encore 2 chose:
                  1. dans le nom de base de donnée et le nom de la table, tu peux pas avoir d'espace.
                  Donc tu dois changer "ma base", "ma table" par "ma_base", "ma_table"
                  2. tu dois avoir crée une base "ma_base" et une table "ma_table", pour pouvoir les utiliser, s'ild existent pas ça marchera pas.


                  Et dans:
                  $con= mysqli_connect('localhost ' , 'root' , 'root');
                  faut faire attention à ne pas ajouter d'espaces inutile, ici il y avait une éspace après localhost
                  $con= mysqli_connect('localhost' , 'root' , 'root');


                  Pour venir au message d'érreur sur ton image le voici:
                  mysqli_query() expects at 2 least 2 parameters, 1 given .../connect.php on line 6
                  En traduction, il dit que la fonction mysqli_query() attend 2 paramètre mais que 1 est présent.
                  Il donne aussi l'information sur quel fichier: .../connect.php à la ligne 6
                  Et à la ligne 6 du fichier connect.php tu avais bien: mysqli_select_db( 'ma bdd');

                  J'espère que ça t'aurais aider.

                  -
                  Edité par h3qd5h0t 13 juin 2018 à 7:07:21

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 juin 2018 à 2:04:04

                    bonjour 

                    j'ai cliquer sur le lien que vous m'aviez  modifier il marche nickel 

                     par contre kan j'essaye de ratacher un autre site web 

                    il ya l'erreur suivante qui s'affiche

                    pourtant j'ai fais un copier coller du code entier, j'ai juste changer  les variable les nom de la bdd et le nom de la table

                    j'ai exactement le même code pour mon premier site sa marche pour le deuxième sa bloque je ne vois pas d'erreur

                    voici mon code

                    $nom = $_POST["nom"] ;
                    $prenom = $_POST["prenom"] ;
                    
                    $con = new mysqli('localhost', 'root', 'root', 'recup' ) ;
                    if ($con->connect_error) {
                        die("Echec de connexion avec mysqli: " . $con->connect_error);
                    }
                    $tmpr = $con->prepare("INSERT INTO `info` (nom,  prenom) VALUES (?, ?, ?)");
                    $tmpr->bind_param("sss", $nom, $prenom);
                    $tmpr->execute();
                    ?>



                    merci cordialement

                    -
                    Edité par BoubouAlba 16 juin 2018 à 2:07:10

                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 juin 2018 à 11:38:52

                      2 colonnes pour 3 valeurs/paramètres et ça ne te choque pas ?

                      Idem au bind, tu "déclares" 3 paramètres ("sss") et n'en bindes que 2 ...

                      Ca me paraît tout de même bizarre si les erreurs étaient gérées (cf mysqli_report), mysqli ne le signale pas.

                      -
                      Edité par julp 16 juin 2018 à 11:41:45

                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 juin 2018 à 2:25:28

                        bonjour 

                        j'ai modifier les "sss" par"ss" a marcher hier, puis  aujourd'hui sa ne fonctionne plus 

                        il y a cette erreur qui s'afiche

                        voila mon code

                        $nom=$_POST["nom"];
                        $prenom=$_POST["prenom"];
                        
                        $con=new mysqli('localhost','root','root','ma_bdd');
                        if ($con->connect_error){die("erreur de connexion".$con->connect_error);}
                        
                        $tmpr=$con->prepare("INSERT INTO 'ma_table'(nom,prenom)VALUES(?,?)");
                        $tmpr=bind_param("ss",$nom,$prenom);
                        $tmpr=execute();


                        merci cordialement

                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 juin 2018 à 11:50:07

                          Tu m'expliques pourquoi tu as changé des -> en = ?

                          Du coup :

                          1. ça devient un appel de fonction, qui n'existe pas, au lieu d'un appel de méthode
                          2. tu fais une affectation (= écraserais ton objet mysqli_stmt)

                          Un peu de logique aussi dans ce que vous faites.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 juin 2018 à 1:30:55

                            bonjour 

                            moi je n'ai rien changer il et comme sa depuis le début 

                            par contre je suis vraiment un débutant,

                            en faite qu'es qu'il il faudrait changer quoi dans ce code pour qu'il soit valide ?

                            merci cordialement

                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 juin 2018 à 15:37:25

                               Voir différence.

                              $tmpr=$con->prepare("INSERT INTO 'ma_table'(nom,prenom)VALUES(?,?)");
                              $tmpr=bind_param("ss",$nom,$prenom);
                              $tmpr=execute();
                               
                              $tmpr=$con->prepare("INSERT INTO 'ma_table'(nom,prenom)VALUES(?,?)");
                              $tmpr->bind_param("ss",$nom,$prenom);
                              $tmpr->execute();

                               C'est pour ces truc que j'avais dit sur mon premier message: "Faut éviter à le faire passer de simple requète procédurale à requète poo à message d'erreur sophistiqué, il débute seulement."

                              Le procédurale et le poo sont différent à l'écriture, faut s'y connaître et différencier pour bien utiliser.

                              Encore dans mon premier message, j'avais bien spécifier les erreurs simple, une fois compris tu pouvais continuer à utiliser ton code en procédurale. Mais bon tu choisis ce que tu veux, mais sache juste qu'il existe 2 type d'écritue php procédurale et poo (ainsi pour la base de donnée mysqli poo et procédurale, dans ton premier code c'est procédurale celui commentaire à la fin c'est du poo/mysqli poo).

                              -
                              Edité par h3qd5h0t 19 juin 2018 à 15:45:40

                              • Partager sur Facebook
                              • Partager sur Twitter
                                20 juin 2018 à 0:39:48

                                bonjour 

                                je ne comprend pas j'ai exactement le même code sur un autre site internet( mais il y a a pas les même variable) et sa marche

                                j'ai essayer de mettre les -> a la place de= sa ne marche pas non plus  toujours la même erreur sa doit être qu'une petite erreur

                                mais je vois pas laquelle .

                                merci cordialement

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  20 juin 2018 à 8:21:50

                                  "je ne comprend pas j'ai exactement le même code sur un autre site internet( mais il y a a pas les même variable) et sa marche"
                                  Peut-être que la base de donnée diffère du tiens.

                                  Donne nous le code php et l'erreur afficher.

                                  -
                                  Edité par h3qd5h0t 20 juin 2018 à 8:24:42

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    21 juin 2018 à 0:10:57

                                    bonjour

                                    voila mon formulaire

                                    <form method="post" action="new.php">
                                    <input type="text" name="nom"/>
                                    <br />
                                    <br />
                                    <input type="text" name="prenom"/>
                                    <br />
                                    <br />
                                    <input type="submit" name"submit" values="valider"/>
                                    </form>

                                    voila mon fichier de connexion

                                    $nom = $_POST["nom"] ;
                                    $prenom = $_POST["prenom"] ;
                                    
                                    $con = new mysqli('localhost', 'root', 'root', 'recup' ) ;
                                    if ($con->connect_error) {
                                        die("Echec de connexion avec mysqli: " . $con->connect_error);
                                    }
                                    $tmpr = $con->prepare("INSERT INTO `info` (nom,  prenom) VALUES ($nom, $prenom");
                                    $tmpr->bind_param("ss", $nom, $prenom);
                                    $tmpr->execute();

                                    et voici l'erreur

                                    ma base de donné c'est recup et ma table c'est info j'utilise uwanp et dans ma table il y a deux colonnes nom et prenom

                                    merci cordialement

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 juin 2018 à 0:29:11

                                      1. Tu bindes 2 paramètres qui n'existent pas.
                                      2. Il manque la ) censée terminer VALUES(

                                      VALUES ($nom, $prenom"); => VALUES (?, ?)");

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        21 juin 2018 à 0:35:13

                                        Je m'y connais pas trop en poo et mysqli poo, d'après le site php, ce truc devrait fonctionner:

                                        $tmpr = $con->prepare("INSERT INTO 'info' (nom,prenom) VALUES (?, ?)");
                                        $tmpr->bind_param('ss', $nom, $prenom);
                                        $tmpr->execute();
                                        // printf("%d Row inserted (nombre d'insertion).\n", $tmpr->affected_rows);
                                        $tmpr->close();

                                        Mettre directement des variables comme values fonctionne sur du mysqli écrit en procedurale.
                                        Sur l'écriture poo mysqli tu utilises une autre méthode avec ? au lieu du variable et ajoute une nouvelle ligne pour lier tes variables aux "?".

                                        Si ton but est de faire quelques simples page et ne plus toucher, tu peux continuer comme ça à regrouper du code fonctionnel pour arriver à ton but.

                                        Mais si tu comptes faire beaucoup de code ou faire un code compliquer et continuer à coder, je te conseil de commencer à bien suivre/étudier un tutoriel sur php pdo (si tu suis déjà pas de soucis).

                                        -
                                        Edité par h3qd5h0t 21 juin 2018 à 0:59:10

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          22 juin 2018 à 0:25:05

                                          bonjour
                                          j'ai essayer tous se que vous m'aviez dit de faire j'ai copier le code que vous m'aviez ecris , toujours cette erreur 
                                          quand vous me dite que je bind des paramètre qui n'existe pas du coup je doit faire quoi pour supprimer  cette erreur?
                                          merci cordialement
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 juin 2018 à 8:25:22

                                            Réfléchir et arrêter de copier coller bêtement sans comprendre.

                                            (Un jour je vais mettre une petite forkbomb dans un exemple pour voir si le mec copie sans comprendre xd)

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            impossible de relie mon site a ma base de donné

                                            × 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