IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Fatal error & PDOException


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Fatal error & PDOException
    Bonjour à tous,

    Je suis nouveau sur le forum et dans le PHP. Je suis entrain de regarder un tuto pour la réalisation d'un site de e-commerce qui servira que pour mon club de sport.

    Alors je suis les conseils du tuto j'ai déjà réussi a corrigé plusieurs erreurs seul ou en cherchant sur le net mais celle là je ne trouve vraiment pas..

    Fatal error: in C:\wamp64\www\e-commerce\process.php on line 66
    PDOException: in C:\wamp64\www\e-commerce\process.php on line 66
    Ma feuille process.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
     
    session_start();
     
    try
     
    	{
     
    		$db = new PDO('mysql:host=localhost;dbname=e-commerce', 'root', '');
    		$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); //les noms de champs seront en caractères minuscules
    		$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //les erreurs lanceront des exceptions
     
    	}
     
    	catch(Exception $e)
     
    	{
     
    		die('Une erreur est survenue');
     
    	}
     
    $_SESSION['user_id'] = '1';
     
    require_once('includes/functions_panier.php');
    require_once('includes/paypal.php');
     
    $totaltva = MontantGlobalTVA();
    $paypal = new Paypal();
    $response = $paypal->request('GetExpressCheckoutDetails', array(
    	'TOKEN' => $_GET['token']
    ));
     
    if($response){
     
    	if($response['CHECKOUTSTATUS'] == 'PaymentActionCompleted'){
    		$response2 = $paypal->request('GetTransactionDetails', array(
    			'TRANSACTIONID' => $response['TRANSACTIONID']
    		));
     
    		$products = '';
     
    		for($i = 0; $i<count($_SESSION['panier']['libelleProduit']); $i++){
     
    			$products.=$_SESSION['panier']['libelleProduit'][$i];
     
    			if(count($_SESSION['panier']['libelleProduit'])>1){
     
    				$products.=', ';
     
    			}
     
    		}
     
    		$name = $response2['SHIPTONAME'];
    		$street = $response2['SHIPTOSTREET'];
    		$city = $response2['SHIPTOCITY'];
    		$state = $response2['SHIPTOCOUNTRYNAME'];
    		$date = $response2['ORDERTIME'];
    		$transaction_id = $response2['TRANSACTIONID'];
    		$amt = $response2['AMT'];
    		$shipping = $response2['FEEAMT'];
    		$currency_code = $response2['CURRENCYCODE'];
    		$user_id = $_SESSION['user_id'];
     
    		$db->query("INSERT INTO transactions VALUES($name', '$street', '$city', '$state', '$date', '$transaction_id', '$amt', '$shipping', '$products', '$currency_code', '$user_id')");
     
     
    		var_dump($response2);
     
    		die('Ce paiement a déjà été effectué..');
     
    	}
     
    }else{
     
    	var_dump($paypal->errors);
    	die();
     
    }
     
    $response = $paypal->request('DoExpressCheckoutPayment', array(
    	'TOKEN' => $_GET['token'],
    	'PAYERID' => $_GET['PayerID'],
    	'PAYMENTACTION' => 'Sale',
    	'PAYMENTREQUEST_0_AMT' => $totaltva,
    	'PAYMENTREQUEST_0_CURRENCYCODE' => 'EUR'
    ));
     
    if($response){
     
    	$response2 = $paypal->request('GetTransactionDetails', array(
    	'TRANSACTIONID' => $response['TRANSACTIONID']
    ));
     
    	var_dump($response2);
     
    	var_dump($response);
     
    }else{
     
    	var_dump($paypal->errors);
    	die();
     
    }
     
    ?>
    Voilà en espèrent avoir été assez précis sinon je suis a votre disposition

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Utilise une requête préparée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sth = $db->prepare("INSERT INTO transactions VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
    $sth->execute (array(($name,$street, $city, $state, $date, $transaction_id, $amt, $shipping, $products, $currency_code, $user_id));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse aussi rapide j'inserts donc cette requête à la place de celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($db->query("INSERT INTO transactions VALUES($name', '$street', '$city', '$state', '$date', '$transaction_id', '$amt', '$shipping', '$products', '$currency_code', '$user_id')");)
    ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Par contre il n'y a pas d'id sur cette table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Par contre il n'y a pas d'id sur cette table ?
    J'ai mis un id, il faut que je le rajoutes dans la requête ?

  6. #6
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Si l'id est un INTEGER AUTO_INCREMENT, tu n'as pas bes
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sth = $db->prepare("INSERT INTO transactions VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
    $sth->execute (array(('', $name,$street, $city, $state, $date, $transaction_id, $amt, $shipping, $products, $currency_code, $user_id));
    sinon
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sth = $db->prepare("INSERT INTO transactions VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
    $sth->execute (array(($id, $name,$street, $city, $state, $date, $transaction_id, $amt, $shipping, $products, $currency_code, $user_id));
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. [MySQL] Fatal error: Uncaught exception PDOException
    Par momototo38 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/08/2015, 19h33
  2. Réponses: 2
    Dernier message: 30/03/2015, 11h18
  3. [MySQL] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000
    Par okoweb dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/12/2011, 08h32
  4. Fatal error: Uncaught exception 'PDOException'
    Par mina13 dans le forum Zend_Db
    Réponses: 2
    Dernier message: 09/06/2011, 09h24
  5. [MySQL] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
    Par -Fly- dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2011, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo