[RESOLU] enigme sur update

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 : [RESOLU] enigme sur update

Re: [RESOLU] enigme sur update

par Ryle » 29 mars 2021, 12:20

Cool !

Et pour la constante, je pense que c'est une question de guillemets. En SQL, il faut délimiter les chaines avec des apostrophes et non des guillemets.

Ceci devrait fonctionner :
$pdostat =  $bdd->prepare('UPDATE membres SET qte_contenant = :qte_contenant-1, usure_contenant= :usure_contenant+1, PA = :PA-1, VIE =:VIE+1, FIGHT =:FIGHT+2, info = \'Tout va bien pour vous.\'   WHERE id = :id');
A noter, les apostrophes qui délimitent la constante doivent être protégées par un \ puisque la chaine de caractères contenant la requête est délimitée par des apostrophes.

Re: enigme sur update

par nestor94 » 29 mars 2021, 11:58

La constante ne fonctionnant toujours pas, j'ai modifié/déclaré la variable $info en amont et avec le bind ça fonctionne.
Merci !!

Re: enigme sur update

par Ryle » 29 mars 2021, 10:27

Salutations !

En effet, dans ton update il faut soit passer une constante (info = "Tout va bien pour vous."), soit passer une variable (info = :info) qui prendra alors la valeur de $info au moment du bind ( $pdostat->bindValue(':info', $info, PDO::PARAM_STR))

Le mélange des deux va difficilement pouvoir fonctionner ;)

Re: enigme sur update

par j_saisrien » 29 mars 2021, 04:14

Salut

Et si tu enlèves le ( : ) ça fait quoi ?
info = "Tout va bien pour vous."

enigme sur update

par nestor94 » 29 mars 2021, 01:21

Bonjour,
quelqu'un pourrait-il m'expliquer pourquoi cet update ne fonctionne pas???
$pdostat =  $bdd->prepare('UPDATE membres SET qte_contenant = :qte_contenant-1, usure_contenant= :usure_contenant+1, PA = :PA-1, VIE =:VIE+1, FIGHT =:FIGHT+2, info =: "Tout va bien pour vous."   WHERE id = :id');
   	   $pdostat->bindValue(':qte_contenant', $qte_contenant, PDO::PARAM_INT);
	   $pdostat->bindValue(':usure_contenant', $usure_contenant, PDO::PARAM_INT);
	   $pdostat->bindValue(':PA', $PA, PDO::PARAM_INT);
	   $pdostat->bindValue(':VIE', $VIE, PDO::PARAM_INT);
	   $pdostat->bindValue(':FIGHT', $FIGHT, PDO::PARAM_INT);
   	   $pdostat->bindValue(':info', $info, PDO::PARAM_STR);
       $pdostat->bindValue(':id', $id, PDO::PARAM_INT);
       $pdostat->execute();
Quand je vire le dernier paramètre info =: "Tout va bien pour vous." la requete fonctionne...
le champ "info" en table: info varchar(100) utf8_general_ci not null ''