Erreur UPDATE

Messages postés
43
Date d'inscription
mercredi 17 février 2016
Dernière intervention
21 mai 2016
- - Dernière réponse : jordane45
Messages postés
23637
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
- 21 mai 2016 à 20:38
Bonjour,

Je me retrouve avec l'erreur "Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/u464599732/public_html/index.php on line 85" (Ici la 3)

Avec une requête UPDATE.
	
if($userinfo['clicVisiteUp'] >= $userinfoxp)
    {
      $query = $bdd->prepare("UPDATE Membre SET $userinfo['level'] = $userinfo['level'] + 1, $userinfo['clicVisitUp'] = 0 WHERE pseudo = :pseudo");
        $query->execute(array('pseudo' => $_GET['pseudo']));
    }

Pourquoi ?

Merci d'avance ;)
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23637
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
0
Merci
Bonjour,

Commence par récupérer PROPREMENT les variables
(regarde ceci :http://www.commentcamarche.net/faq/1391-php-notice-undefined-index )

Puis séparer la requête de son éxécution et ajoute un bloc try/catch
Fais aussi un ECHO de la requête pour voir si c'est conforme à ce que tu attends...

Comme ceci :
//récupération "PROPRE" des variables AVANT de les utiliser
$clicVisiteUp =  !empty($userinfo['clicVisiteUp']) ? $userinfo['clicVisiteUp'] : NULL;
$pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo'] : NULL;
$level = !empty($userinfo['level']) ? $userinfo['level'] : NULL;

if($clicVisiteUp >= $userinfoxp) {

 $sql = "UPDATE Membre SET ".$level." = ".$level + 1 .", ".$clicVisiteUp ." = 0 WHERE pseudo = :pseudo"	;
 $datas = array(':pseudo' => $pseudo);

 //juste au cas où histoire de vérifier :
 echo " La requete :".$sql;
 
 try{
    $query = $bdd->prepare($sql);
    $query->execute($datas);
 }catch(Exception $e){
    echo "Erreur ! " .$e->getMessage();
 }
}

ZauChoco
Messages postés
43
Date d'inscription
mercredi 17 février 2016
Dernière intervention
21 mai 2016
-
Cela me donne: La requete :1, 999999 = 0 WHERE pseudo = :pseudo
Et le level et clicVisiteUp ne change pas.
jordane45
Messages postés
23637
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
> ZauChoco
Messages postés
43
Date d'inscription
mercredi 17 février 2016
Dernière intervention
21 mai 2016
-
1, 999999 = 0 ??
Ne te serais tu pas trompé dans ta requête ?
Je trouve étrange que tu passes le nom d'un champ en tant que variable .....
SET ".$level." = ".$level + 1 
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.