Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre éprouvé
    Homme Profil pro John
    Étudiant
    Inscrit en
    juin 2010
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme John
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2010
    Messages : 307
    Points : 497
    Points
    497

    Par défaut Insertion dans la base de données

    Bonjour à tous,

    Je suis entrain de gérer l'inscription d'une personne sur mon site et je ne comprends pas pourquoi ça marche pas. Lorsque je fais l'insert avec mes variables php, rien ne s'ajoute dans la base de données, en revanche lorsque j'exécute la requête avec des valeurs en dur ça marche (le code en commentaire). Pourtant les champs ne sont pas vide, vu que le test sur $_GET ["login"] fonctionne...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    if (isset ( $_GET ["login"] )) {
                // récupération de toutes les informations
                $login = $_GET ["login"];
                $nom = $_GET ["nom"];
                $prenom = $_GET ["prenom"];
                $email = $_GET ["mail"];
                $mdp = $_GET ["mdp"];
     
                // ajoute ou modifie (suivant si la personne existe ou non)
                if (isset ( $_SESSION ["id"] )) {
                    $id = $_SESSION ["id"];
                    $requete = 'update personne set login="' . $login . '", nom="' . $nom . '", prenom="' . $prenom . '", mail="' . $email . '", mdp="' . $mdp . '" where idpersonne=' . $id;
                    pg_query ( $requete );
                } else {
                    // Insertion dans la BD
                    $requete = 'insert into personne (login, nom, prenom, email, mdp) values ("'. $login .'", "'.$nom .'", "'.$prenom.'", "'.$email.'", "'.$mdp.'")';
                    //$requete = "insert into personne (login, nom, prenom, email, mdp) values ('tt', 'tt', 'tt', 'tt', 'tt')";
                    pg_query ( $requete );
     
                    $id = $requete . 'RETURNING id';
    }
    John.

  2. #2
    Modérateur
    Avatar de rawsrc
    Homme Profil pro Martin
    Dev indep
    Inscrit en
    mars 2004
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Nom : Homme Martin
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 3 152
    Points : 7 343
    Points
    7 343

    Par défaut

    Salut,

    et si tu essayais après avoir échappé tes données juste au cas où tu aurais des caractères exotiques qui font que cela ne passe pas -> pg_escape_string()

    Il t'est aussi possbile d'utiliser le délimiteur de chaine de postGres, très pratique pas besoin de s'embêter avec les quotes.
    Il faut juste que tu t'assures bien qu'aucune valeur ne contient le délimiteur défini. N'oublies pas que le délimiteur est sensible à la casse.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #3
    Membre éprouvé
    Homme Profil pro John
    Étudiant
    Inscrit en
    juin 2010
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme John
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2010
    Messages : 307
    Points : 497
    Points
    497

    Par défaut

    Salut et merci pour ta réponse. Je ne vois pas pourquoi le pg_escape serait utile vu que pour l'instant je n'ai que des lettres à mettre dans les champs ?

  4. #4
    Membre éprouvé
    Homme Profil pro John
    Étudiant
    Inscrit en
    juin 2010
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme John
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2010
    Messages : 307
    Points : 497
    Points
    497

    Par défaut

    Je viens de trouver mon erreur. C'est qu'en fait je faisais mes tests quand j'étais connecté avec un login, donc forcement ça allait dans le test d'update des informations que je n'ai pas encore terminé.

    Merci quand même !

  5. #5
    Modérateur
    Avatar de rawsrc
    Homme Profil pro Martin
    Dev indep
    Inscrit en
    mars 2004
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Nom : Homme Martin
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 3 152
    Points : 7 343
    Points
    7 343

    Par défaut

    est ce que tu récupères quelque chose avec pg_last_error() ?
    # Dans la Création, tout est permis mais tout n'est pas utile...

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •