Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & PostgreSQL
PHP & PostgreSQL Forum d'entraide sur PostgreSQL avec PHP. Avant de poster -> FAQ PostgreSQL, Cours PostgreSQL. Pour les questions concernant le moteur PostgreSQL plutôt que les fonctions PHP, merci d'utiliser le forum PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/05/2012, 16h25   #1
Johngtrs
Membre éprouvé
 
Homme John
Étudiant
Inscription : juin 2010
Messages : 266
Détails du profil
Informations personnelles :
Nom : Homme John
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 266
Points : 476
Points : 476
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.
Johngtrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2012, 16h52   #2
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
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...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2012, 17h00   #3
Johngtrs
Membre éprouvé
 
Homme John
Étudiant
Inscription : juin 2010
Messages : 266
Détails du profil
Informations personnelles :
Nom : Homme John
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 266
Points : 476
Points : 476
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 ?
Johngtrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2012, 17h16   #4
Johngtrs
Membre éprouvé
 
Homme John
Étudiant
Inscription : juin 2010
Messages : 266
Détails du profil
Informations personnelles :
Nom : Homme John
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 266
Points : 476
Points : 476
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 !
Johngtrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2012, 17h18   #5
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
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...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h00.


 
 
 
 
Partenaires

Hébergement Web