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 05/04/2008, 19h49   #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 Update d'un tuple

Bonjour,

J'ai un formulaire qui me permet de modifier les coordonnées d'un membre, toutefois les modifications ne sont pas effectuées dans la base de données, voici le code :

Code :
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
elseif (!empty($_POST["modifications"]))
				{
 
				define('USER', 'root');
				define('PASS', '0000');
				define('DSN', 'mysql:host=localhost;dbname=ma_base');
 
				$connexion2_bdd = new PDO(DSN, USER, PASS);
 
				$login = $_POST["login"];
				$nom = $_POST["nom"];
				$adresse = $_POST["adresse"];
				$code_postal = $_POST["code_postal"];
				$ville = $_POST["ville"];
				$telephone = $_POST["telephone"];
				$email = $_POST["email"];
 
				$requete_modif = "UPDATE `membres` SET nom=:nom, adresse=:adresse, code_postal=:code_postal, ville=:ville, telephone=:telephone, email=:email WHERE login = $login";
				$prepare = $connexion2_bdd->prepare($requete_modif);
				$prepare->execute(array(':nom'=>$nom, ':adresse'=>$adresse, ':code_postal'=>$code_postal, ':ville'=>$ville, ':telephone'=>$telephone, 'email'=>$email, ':login'=>$login));
 
				print_r($connexion2_bdd->errorInfo());
				print_r($connexion2_bdd->errorCode());
				print_r($requete_modif);
 
 
				$connexion2_bdd = NULL;
				}
print_r : requete modif renvoi : UPDATE `membres` SET nom=:nom, adresse=:adresse, code_postal=:code_postal, ville=:ville, telephone=:telephone, email=:email WHERE login = mon_login (ce qui n'est pas normal, car ce sont les valeurs saisies dans le formulaire de modification qui devraient être renvoyées)

ErrorCode()
et ErrorInfo ne renvoient aucune erreur.

Merci d'avance pour votre aide
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2008, 20h02   #2
Membre éclairé
 
Développeur Web
Inscription : septembre 2004
Messages : 352
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2004
Messages : 352
Points : 396
Points : 396
Code :
print_r : requete modif renvoi : UPDATE `membres` SET nom=:nom, adresse=:adresse, code_postal=:code_postal, ville=:ville, telephone=:telephone, email=:email WHERE login = mon_login (ce qui n'est pas normal, car ce sont les valeurs saisies dans le formulaire de modification qui devraient être renvoyées)
Si, c'est normal vu que t'affiches le contenu de la variable donc aucun remplacement .

Je ne m'en souviens pour les Prepare Statement, s'il faut quoter les chaînes textuels.

Essayes ça :
Code :
1
2
 
$requete_modif = "UPDATE membres SET nom=':nom', adresse=':adresse', code_postal=':code_postal', ville=':ville', telephone=':telephone', email=':email' WHERE login = '$login'"
Chengj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2008, 20h51   #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
Re

Merci pour ton aide, malheureusement j'avais deja essayé cette option, je viens de réessayer ca ne fonctionnait pas et ne fonctionne toujours pas mieux...

J'ai même déjà essayé de remplacer les ':---' de la requete préparée par des variables par exemple : nom=$nom & nom = '$nom' sans succès non plus, aucune modification n'est effectué dans la base....

Entre temps, je viens d'effectuer un autre test, j'ai extrait la partie de code faisant l'update et l'ai mis dans un fichier à part comme ceci :
Code :
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
<?php
				define('USER', 'root');
				define('PASS', '0000');
				define('DSN', 'mysql:host=localhost;dbname=ma_base');
 
				$connexion2_bdd = new PDO(DSN, USER, PASS);
 
				$login = "mon_login";
				$nom = "NOM NOM";
				$adresse = "rue de la surprise";
				$code_postal = "75000";
				$ville = "paris";
				$telephone = "01000000000";
				$email = "mail@dom.tld";
 
				$requete_modif = "UPDATE `membres` SET nom=':nom', adresse=':adresse', code_postal=':code_postal', ville=':ville', telephone=':telephone', email=':email' WHERE login = '$login'";
				$prepare = $connexion2_bdd->prepare($requete_modif);
				$prepare->execute(array(':nom'=>$nom, ':adresse'=>$adresse, ':code_postal'=>$code_postal, ':ville'=>$ville, ':telephone'=>$telephone, 'email'=>$email, ':login'=>$login));
 
				print_r($connexion2_bdd->errorInfo());
				print_r($connexion2_bdd->errorCode());
 
				print_r($requete_modif);
 
 
				$connexion2_bdd = NULL;
?>
La, les modifications se font partiellement, c'est a dire que l'enregistrement est effectivement modifié mais nom = :nom, adresse = :adresse au lieu du nom réel, de l'adresse réelle etc...

Casse tête
Merci pour ton aide
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 00h53   #4
Membre éclairé
 
Développeur Web
Inscription : septembre 2004
Messages : 352
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2004
Messages : 352
Points : 396
Points : 396
Ouch, il n'y avait pas besoin de quotes. Enfin bref, j'ai remarqué que tu donnais 7 paramètres au lieu de 6 attendus, ce ne serait pas là le problème ?
Chengj 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 23h44.


 
 
 
 
Partenaires

Hébergement Web