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

Langage PHP Discussion :

Insert qui n'insère pas


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 68
    Points : 37
    Points
    37
    Par défaut Insert qui n'insère pas
    Bon ^^ tous est dans le titre , j'ai un fichier php dont l'objet est d'intégrer des variables dans une table temporaire cependant il ne se passe rien et je ne parvient pas à trouver d'ou vient le problème (le frontend est une appli flutter).
    le fichier db_connection n'est pas en cause (il fonctionne sur un SELECT) et les droits Insert pour le user en question sont ouverts.

    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
    26
    27
    28
    29
    30
    <?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
     
    include '********/admin/db_connection.php';
     
    $ip = $_SERVER['REMOTE_ADDR'];
     
    $gps = $_POST['gps'];
     
    $conn = OpenCon();
     
    $stmt->bindValue(':gps', $gps);
    $stmt->bindValue(':userappip', $ip);
     
    $sql = "INSERT INTO temporary.usercodb (userappip, gps) VALUES (:userappip, :gps)";
    $stmt= $pdo->prepare($sql);
     
    try{
        $pdo->beginTransaction();
        $stmt->execute();
        $stmt->commit();
    }catch(\PDOException $e){
        $pdo->rollback();
         echo $e->getMessage();
    }
     
    CloseCon($conn);
    ?>

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Bonjour,

    Le point avant $_SERVER $ip = .$_SERVER['REMOTE_ADDR']; n'est pas une erreur de copier/coller?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    si ^^, j'ai corrigé mais cela n'est pas la source du problème visiblement.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Ok, et les valeurs de $_SERVER['REMOTE_ADDR'] et $_POST['gps'] sont bien définies dans le script ?

    Après il faut ajouter aussi le 3éme paramètre de bindValue.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    $_SERVER est une variable de PHP donc oui elle se définit d'elle même lors de l'appel du fichier. et $gps est une variable qui est communiqué par la transaction POST de mon appli. j'ai appliqué le paramètre de typage de bind value mais c'est optionnel il me semble (si les types sont identiques).

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    je viens d'essayer de transmettre la variable gps par le biais d'un formulaire html et ca semble effectivement coincé au niveau du bindvalue.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    </p>
     
    <form action="http://**********/***dbco.php" method="post">
    <p>
        <input type="text" name="gps" />
        <input type="submit" value="Valider" />
    </p>
    </form>

    je transmet une valeur "37.4219983, -122.084"

    et j'ai un message d'erreur disant que la variable gps est nulle :
    Fatal error: Uncaught Error: Call to a member function bindValue() on null

  7. #7
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Bonjour,

    La dernière erreur dit que c'est $stmt qui est null car il n'est plus déclaré dans le script.

    Et si tu veux récupérer une valeur d'un input, il faut l'attribuer un value :<input type="text" name="gps" value="une valeur...."/>.

    Puis après je vois que tu récupères l'objet de connexion ici $conn = OpenCon();, montres le code de cette fonction.

    Il faudrait aussi activer les erreurs de l'objet PDO pour avoir plus de détail sur l'erreur d'insertion, pour le faire, il suffit d'ajouter $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); comme c'est montré dans la doc.

Discussions similaires

  1. Insert qui n'insère pas au bon endroit
    Par mouarffff dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/10/2009, 14h32
  2. [A-03] Insert Into qui n'insère PAS.
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 10
    Dernier message: 23/10/2008, 15h29
  3. [MySQL] Insert qui n enregistre pas ?
    Par nikki113 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/06/2006, 20h31
  4. [ODBC] une requete d'insertion qui ne fonctionne pas
    Par boulhous dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/05/2006, 13h56
  5. Insert qui ne fonctionne pas
    Par Nyrianne dans le forum Outils
    Réponses: 7
    Dernier message: 09/01/2006, 17h50

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