Système de code cadeau

Fermé
alantheo - Modifié par alantheo le 10/11/2013 à 14:51
Bonjour, j'ai réalisé un script qui vérifie si le code cadeau existe dans la bdd, récupère le nom de l'objet offert et la quantité et l'ajoute au membre. Seulement ma requête m'affiche :





Fatal error: Call to a member function fetch() on a non-object in ** on line 400



J'utilise Mysqli et PDO pour une bonne raison, ne me demandez par pourquoi :)





Voici mon code :





<?php


//Si l'action de validation a été faite

if(isset($_POST["Valider"]))

{



//connection au serveur

$cnx = mysqli_connect( "**", "**", "**" ) ;



//sélection de la base de données:

$db = mysqli_select_db($cnx,"**") ;



// verification connection

if (mysqli_connect_errno($cnx)){

echo "Connexion impossible à MySQL: " . mysqli_connect_error();

}



//récupération des valeurs des champs et sécurisation contre les injections SQL

$code = trim(stripslashes(htmlentities($_POST['code'])));

$id = $_SESSION['id'];







$query = mysqli_query($cnx, 'UPDATE code_cadeau SET utiliser =(utiliser+1) WHERE utiliser=0 AND code= '.$code.'');

if (mysqli_affected_rows($cnx))

{

try

{

$bdd = new PDO('mysql:host=**;dbname=**', '**', '**');

}

catch(Exception $e)

{

die('Erreur : '.$e->getMessage());

}



$reponse = $bdd->query('SELECT * FROM code_cadeau WHERE code='.$code.'');



if ($donnees = $reponse->fetch())

{



$query2 = mysqli_query($cnx, 'UPDATE membre SET '.$donnees['objet'].' =('.$donnees['objet'].'+'.$donnees['quantite'].') WHERE id='.$id.'');

if (mysqli_affected_rows($cnx))

{



echo ("</br><div style=\"margin-left:250px;\" class=\"ok\"><h3 style=\"color:green;font-family:'Bubblegum';\"> Votre code cadeau à bien été utilisé.</h3></div>");



}





}

$reponse->closeCursor();



}



else

{

echo ("</br><div style=\"margin-left:250px;\" class=\"erreur\"><h3 style=\"color:#c10000;font-family:'Bubblegum';\">Ce code est invalide ou est expiré !</h3></div>");

}



}





?>

La ligne 400 correspond à


if ($donnees = $reponse->fetch())


Merci par avance !