Requete SQL qui n'envoie rien

- - Dernière réponse : jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
- 29 mai 2016 à 00:11
Bonsoir,



J'ai fais un Update en mySql, amis le problème c'est que rien ne se passe !

J'ai fais des testes, et toutes les conditions sont bien respecté pour arrivé a la requête.

Code:

$addavatar = $bdd->prepare('SELECT avatarBuy FROM Membre WHERE pseudo = ?');
       $addavatar->execute(array($_SESSION['pseudo']));
        $addavatarfinal = $addavatar->fetch();
           $addavatarfinal['clicVisiteUp'] = $avatarBuy;
           $prixavatar = $avatarInfo['prix'];
           $addavatarchar = "," . $avatarInfo['ID'];
           $prixavatarsous = $_SESSION['argent'] - $avatarInfo['prix'];
           $query = $bdd->prepare("UPDATE Membre SET avatarBuy = addavatarchar, argent = prixavatarsous WHERE pseudo = :pseudo");
        $query->execute(array('pseudo' => $_SESSION['pseudo']));
        $_SESSION['avatarBuy'] = $_SESSION['avatarBuy'] + $addavatarchar;
        $_SESSION['argent'] = $_SESSION['argent'] - $avatarInfo['prix'];
        $infovote = "Achat réussi avec succès !";


Qu'est ce qui ne va pas ?



Merci :)
Afficher la suite 

Votre réponse

1 réponse

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

Par défaut l'affichage des erreurs pdo n'est pas active...
Il faut modifier ta connexion comme ceci :
<?php
//Fichier de connexion à la bdd : cnxBdd.php
 try{
   $bdd = new PDO("mysql:host=localhost;dbname=tabdd;charset=UTF8", 'user', 'password');
   $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //pour activer l'affichage des erreurs pdo
} catch(PDOException $e){
     echo 'ERROR: ' . $e->getMessage();
} 

>>> en remplaçant les différentes variables pour que ça correspondre à ton besoin.




Ensuite, pour CHACUNE de tes requêtes... utilises un bloc TRY/CATCH
et pense à ajouter au début de tes pages php l'instruction suivante :
error_reporting(E_ALL);

de façon à afficher les éventuels messages d'erreurs php.

Pour finir... pense à tester DIRECTEMENT tes requêtes dans ta BDD.
(via phpmyadmin dans l'onglet sql par exemple)
Pour voir si les requêtes fonctionnent.


PS: Il faut également récupérer "proprement" les variables AVANT de les utiliser.. cela permet en même temps de s'assurer qu'elles existent bien....
Va jeter un oeil ici :
http://www.commentcamarche.net/faq/1391-php-notice-undefined-index


Reviens nous voir avec le code corrigé (en tenant compte de mes précédentes remarques) si ton souci persiste.




Cordialement, 
Jordane                                                                 
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.