Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2008, 17h17   #1
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 240
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 240
Points : 58
Points : 58
Par défaut Problème d'update BDD

Bonjour,

J4ai un petit problème au niveau d'une requete préparée, lors de l'update les modifications ne se font que partiellement c'est a dire que par exemple code postal ne devient pas le code postal saisi par l'internaute mais :code_postal dans la base de données.

Quelqu'un pourrait m'aider ?
Merci d'avance, voici le code :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$adresse = $_POST["adresse"];
$code_postal = $_POST["code_postal"];
$ville = $_POST["ville"];
$telephone_fixe = $_POST["telephone_fixe"];
$telephone_portable = $_POST["telephone_portable"];
 
$requete_update = "UPDATE membre SET adresse=':adresse', code_postal=':code_postal', ville=':ville', telephone_fixe=':telephone_fixe', telephone_portable=':telephone_portable' WHERE pseudo='pseudo'";
 
$prepare_update = $connexion_bdd->prepare($requete_update);
 
$prepare_update->execute(array(':adresse'=>$adresse,':code_postal'=>$code_postal,':ville'=>$ville,':telephone_fixe'=>$telephone_fixe,':telephone_portable'=>$telephone_portable));
 
$prepare_update = NULL;
$connexion_bdd = NULL;
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 17h29   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
tu as essayé d'afficher les variables pour voir ce qu'elles contenaient ?
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 17h49   #3
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 240
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 240
Points : 58
Points : 58
Salut,

Oui j'ai essayé d'afficher le contenu de la variable $adresse et son contenu est la valeur saisie dans le formulaire, mais dans la base ca enregistre :adresse.....
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2008, 20h00   #4
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
au niveau de ta requete tu te trompe pour les variables tu les as appele :variable au lieu de $variable.
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2008, 09h13   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Ne met pas de guillemets autour de tes marqueurs

Code :
$requete_update = "UPDATE membre SET adresse=:adresse, code_postal=:code_postal, ville=:ville, telephone_fixe=:telephone_fixe, telephone_portable=:telephone_portable WHERE pseudo='pseudo'";
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2008, 10h55   #6
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 240
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 240
Points : 58
Points : 58
Citation:
Envoyé par RideKick Voir le message
au niveau de ta requete tu te trompe pour les variables tu les as appele :variable au lieu de $variable.
Salut,

Merci pour ta réponse. Je suis ici en PDO requete préparée, il ne faut normalement pas mettre de vériable dollar sinon ma requete n'est plus protégée contre les caractères spéciaux et il faudrait la proteger via des fonctions natives ou expression régulières... Aussi, c'est étrange qu'ici il faudrait théoriquement le caractère dollar alors que pour la requete d'insertion par exemple les doubles points fonctionnent très bien.

Tu n'aurais pas une autre idée ?
Merci....
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 15h52   #7
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Citation:
Envoyé par sabotage Voir le message
Ne met pas de guillemets autour de tes marqueurs

Code :
$requete_update = "UPDATE membre SET adresse=:adresse, code_postal=:code_postal, ville=:ville, telephone_fixe=:telephone_fixe, telephone_portable=:telephone_portable WHERE pseudo='pseudo'";
+1, sauf pour le dernier paramètre pseudo. Soit on utilise un marqueur et donc :pseudo que l'on binderas ensuite avec une variable $pseudo (par exemple)
soit on met direct $pseudo et on ne protège pas la variable. Mais là, la requête à peu de sens.

Pour ce qui est de répondre à la première question, c'est code_postal qui est inséré dans la base de données car PDO n'interprète pas ton marqueur. En effet il est entre ' '.

a+
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h23.


 
 
 
 
Partenaires

Hébergement Web