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

PHP & Base de données Discussion :

Insérer une donnée dans une base de donnée php.my admin


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Insérer une donnée dans une base de donnée php.my admin
    Bonjour,

    je suis nouveau dans le codage web et actuellement j'ai un soucis pour insérer des données dans ma BDD. Avec la fonction INSERT INTO, mes données n'apparaîssent pas dans ma table.
    Voici mon code pour insérer mes données dans ma table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
     
         //connexion base de données
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "marco";
     
        $fname = $_POST['Nboitier'];
        $lname = $_POST['Nmessages'];
     
        // connect to mysql database using mysqli
     
        $connect = mysqli_connect($servername, $username, $password, $dbname) or die ("connexion impossible");
     
        // mysql query to insert data
     
        $query = "INSERT INTO messages_sigfox ('boitier', 'messages']) VALUES ('$fname','$lname')";
     
        $result = mysqli_query($connect,$query);
     
        echo mysqli_error($connect);
     
     
    ?>
    Actuellement mysqli_error($connect) me renvoie une erreur de syntaxe sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $query = "INSERT INTO messages_sigfox ('boitier', 'messages']) VALUES ('$fname','$lname')";
    J'ai beau cherché et avoir regardé des dizaines de videos, tutos et réponses sur différents forums, je n'arrive pas à saisir l'erreur. Si quelqu'un avait une idée potentiellement (avant que je ne fracasse mon pc de préférence ).

    En remerciant tous ceux qui liront ce long poste,

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Bonjour, quand tu as une erreur ajoute la à ton poste et surtout lit la.

    Dans ton code je vois une erreur de syntaxe grosse comme une maison:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO messages_sigfox ('boitier', 'messages'])
    #                                                 ^ que fait ce crochet fermant ici?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    "...VALUES ('$fname','$lname')"

    D'autre part, on ne rentre pas les valeurs dans une requête par concaténation, mais en utilisant une requête préparée: mysqli::prepare.

    Pour finir, les tutoriels vidéos sont à mon avis (qui n'engage que moi) une perte de temps: c'est long, il y a peu d'informations, les 3/4 du temps, il n'y a aucune réflexion pédagogique derrière. Devant un tutoriel écrit on a une attitude active favorisant la mémorisation, on évolue selon ses connaissances et son rythme, devant un tutoriel vidéo, on devient vite passif, le rythme est imposé et on finit avec un filet de bave qui va jusqu'à parterre.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,

    Je vais corriger cette vilaine faute de syntaxe, c'était une tentative avec des crochets pour voir si ça marchait mieux.
    Concernant la requête préparée, j'ai vu ça quelque part mais je n'ai pas osé. Je vais tenter de suite et voir ce que ça donne.
    Merci pour votre réponse

    PS: je viens de corriger la faute de syntaxe mais cela ne change rien (Affichage sur mon écran avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo mysqli_error($connect);
    Erreur de syntaxe pr�s de ''boitier', 'messages') VALUES ('F3423','1234557KK')' � la ligne 1

    Il n'y a plus qu'à essayer les requêtes préparées

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    okay!!!!! j'ai réussi avec les requêtes préparées!!!!! Voici le code refait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
     
         //connexion base de données
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "marco";
     
        $info1 = $_POST['Nboitier'];
        $info2 = $_POST['Nmessages'];
     
        // connect to mysql database using mysqli
     
        $connect = mysqli_connect($servername, $username, $password, $dbname) or die ("connexion impossible");
     
        // mysql query to insert data
        $stmt = $connect->prepare("INSERT INTO messages_sigfox (boitier, messages) VALUES (?,?)"); 
        $stmt->bind_param("ss", $info1, $info2);
     
        $stmt->execute();  
     
    ?>

    Ma petite question pour ma culture et pour bien faire les choses:
    Pourquoi est-il préférable de passer par une requête préparée? J'ai bien compris que le but est de paramétrer/préparer une sorte de template pour répéter l'opération mais quand on ne veut faire l'opération qu'une seule fois, est-il vraiment nécessaire de passer par là?
    Enfin je voudrais savoir quand même par curiosité ce qui n'allait pas dans mon premier code parceque pour moi la structure me semblait plus que logique .

    En vous remerciant pour vos réponses et encore merci du tuyau!!

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    La requête préparée permet aussi de ne pas se soucier d'encadrer les valeurs avec des quotes, de l'échappement de caractères problématiques dans les valeurs (comme un quote ou un slash) car c'est automatique. Ceci constitue notamment une parade contre les injections SQL.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 502
    Points : 770
    Points
    770
    Par défaut
    Salut.
    mysqli_connect tend aussi à être obsolète.
    Commence à t'habituer avec la connexion PDO.

    Cordialement.

  7. #7
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Pourquoi tu dis ça, Manequin ? Ce n'est pas ce que dit le manuel PHP :

    https://www.php.net/manual/fr/mysql.php

    Lackam -je fais référence au titre de ce fil- la techno de ta base de données, c'est Mysql, une variante de SGBD SQL.

    https://fr.wikipedia.org/wiki/Syst%C...e_donn%C3%A9es

    PHPMyAdmin n'est qu'un accesseur graphique vers ta base de données, qui te permet d'accéder à ta base autrement qu'en ligne de commande.
    PHPMyAdmin n'est pas une base de données, ni un SGBD.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  8. #8
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 502
    Points : 770
    Points
    770
    Par défaut
    Dendrite je le dis parce que j'avais installé une version récente de WampServer et il ne supportais pas mysqli_connect. Lorsque j'ai migré avec PDO, ça fonctionné à merveille.

    Peut-être que c'était une erreur de configuration de ma part.

    Cordialement.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Pourquoi tu dis ça, Manequin ? Ce n'est pas ce que dit le manuel PHP :

    https://www.php.net/manual/fr/mysql.php

    Lackam -je fais référence au titre de ce fil- la techno de ta base de données, c'est Mysql, une variante de SGBD SQL.

    https://fr.wikipedia.org/wiki/Syst%C...e_donn%C3%A9es

    PHPMyAdmin n'est qu'un accesseur graphique vers ta base de données, qui te permet d'accéder à ta base autrement qu'en ligne de commande.
    PHPMyAdmin n'est pas une base de données, ni un SGBD.
    Si je comprends bien, quand je mettrai en ligne mon site, il faudra que je passe par autre chose pour ma BDD que php my admin?
    (un petit tour sur les faq sgbd va être nécessaire je pense )

    Concernant PDO et mysqli, j'ai entendu que PDO était de plus en plus utilisé mais que comme mysqli était encore bien présent dans pas mal de sites, il y aura encore un certain temps avant de la voir disparaître...

    Merci encore tout le monde pour toutes ces infos en tout cas ^^

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je viens de me renseigner plus en détail et du coup je comprends ce que tu me disais.
    PHP my admin en fait c'est une console pour utiliser et voir la BDD MySQL mais ce n'est pas la table en elle-même en fait. C'est beaucoup plus claire!

    Merci encore pour tout tout le monde

  11. #11
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 502
    Points : 770
    Points
    770
    Par défaut
    En réalité phpmyadmin est un client qui se pose sur MySQL.
    Parce que tu peux installer MySQL et administrer ta BD.

    Cordialement

  12. #12
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    une version récente de WampServer et il ne supportais pas mysqli_connect
    Ah bon... Je ne savais pas. Etait-il réellement inaccessible ou bien juste désactivé dans la configuration ?
    Genre, dans le php.ini, décommenter cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extension=php_mysqli.dll


    Si je comprends bien, quand je mettrai en ligne mon site, il faudra que je passe par autre chose pour ma BDD que php my admin?
    Ca dépend, tu mets en ligne ton site via un hébergement mutualisé ?
    Si c'est le cas, la plupart d'entre eux (OVH par exemple, pour ceux que je connais), propose PHPMyAdmin comme interface graphique.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Oui je viens de lire ça, la plupart des hébergeurs propose comme interface php myadmin.
    Je ne suis pas encore au stade de mise en ligne sur le web de mon site encore mais ça me rassure ^^

Discussions similaires

  1. [4.x] Insérer une donnée dans une table imbriqué
    Par KEVIN.DLL dans le forum Symfony
    Réponses: 1
    Dernier message: 09/11/2020, 22h00
  2. Réponses: 3
    Dernier message: 04/08/2010, 14h05
  3. Réponses: 9
    Dernier message: 30/01/2008, 15h40
  4. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  5. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45

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