(Résolu) Update avec PDO

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : (Résolu) Update avec PDO

Re: Update avec PDO

par moogli » 16 oct. 2011, 23:10

Re: Update avec PDO

par Ryle » 16 oct. 2011, 22:53

dans la requête sql générée, les chaines doivent être délimitées par des apostrophes
Ca inclus aussi les chaines qui sont contenues dans des variables ;)

Re: Update avec PDO

par brother » 16 oct. 2011, 21:56

Bonjour,

Merci Moogli, mais je n'ai aucun changement sur ma requète.

$mail = $_SESSION['mail'];
							
$stmt = $idcom->prepare("UPDATE table SET mail = $mail WHERE login_confirm=':login_confirm'");
          $stmt->bindParam(':login_confirm', $login_confirm);
          $stmt->execute(); 

Après validation je n'ai aucune erreur, rien ne se passe !
Même si je mais $mail entre ' ' comme ça : '$mail'
Je retrouve $mail dans la bdd au même titre que le chiffre 1...
C'est à dire pas l'adresse mail en tant que telle ...

Vers quoi dois-je m'orienter pour trouver la solution ?
Merci

Re: Update avec PDO

par moogli » 16 oct. 2011, 17:55

salut,

je n'intervient pas sur le coté php c'est déja fait mais sur le coté SQL.
Pourquoi utilise like ?
UPDATE table SET mail=1 WHERE login_confirm like :login_confirm

ce que tu fait est une égalité autant utiliser le bon opérateur => UPDATE table SET mail=1 WHERE login_confirm=':login_confirm';

@+

Re: Update avec PDO

par Ryle » 16 oct. 2011, 14:43

Il te faut modifier ta requête et passer ta nouvelle valeur dans la liste des paramètres comme tu le fais pour la valeur de :login_confirm (ce qui accessoirement permet de contrôler et protéger ta valeur)

Tu peux aussi le faire directement dans la chaine de ta requête comme tu as tenté de le faire, cependant il ne faut pas oublier que dans la requête sql générée, les chaines doivent être délimitées par des apostrophes :)

(Résolu) Update avec PDO

par brother » 16 oct. 2011, 14:30

Bonjour,

Je test avec PDO cette requète qui fonctionne très bien, elle enregistre 1 dans la table...

$stmt = $idcom->prepare("UPDATE table SET mail=1 WHERE login_confirm like :login_confirm ");
          $stmt->bindParam(':login_confirm', $login_confirm);
          $stmt->execute();

La session mail fonctionne très bien aussi sur ma page, par contre je n'arrive pas a enregistrer l'adresse mail à la place du chiffre (1) comme ceci :

$stmt = $idcom->prepare("UPDATE table_client SET mail="'.($_SESSION['mail']).'" WHERE login_confirm like :login_confirm ");
          $stmt->bindParam(':login_confirm', $login_confirm);
          $stmt->execute();

Peut-on avec PDO et UPDATE, enregistrer l'adresse mail comme ceci .... $_SESSION['mail'] ?
J'ai essayé en déclarant :
$mail = $_SESSION['mail'];
$stmt = $idcom->prepare("UPDATE table_client SET mail=$mail WHERE login_confirm like :login_confirm ");
          $stmt->bindParam(':login_confirm', $login_confirm);
          $stmt->execute();



Et pareil ça ne fonctionne pas .

Merci pour ce coup de pouce .
Cordialement.