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 :

Messages Erreur + Debug php - mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 13
    Par défaut Messages Erreur + Debug php - mysql
    Bonsoir,

    Je développe un site en localhost avec wamp server et phpmyadmin. J'ai des requêtes sql à faire comme des insertions etc...

    Le soucis est que mes requêtes fonctionnent sous phpmyadmin quand je l'exécute dans la partie sql mais pas dans depuis mon script. Quelqu'un sait quel outil je peux utiliser pour voir où sont les erreurs renvoyées par phpmyadmin au niveau de la syntaxe ou de la logique ?

    Quand je fais une requête, je teste le résultat (true ou false) et je sais donc si ça a marché ou pas. Mais je n'ai aucune indications sur la raison du false et je voulais connaitre un outil qui pourrait m'afficher ces raisons. On m'a parlé de mysql log mais je ne sais pas comment l'utiliser.

    Si quelqu'un a des pistes, je suis preneur,


    Axel

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Si cela fonctionne sous PhpMyAdmin il n'y a aucune raison que cela ne fonctionne aps dans ton script. Mets nous ton code qu'on puisse voir.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 13
    Par défaut code
    Bonjour,

    Un grand merci pour ta réponse, voici le code :
    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
    108
    109
    110
    function ajoutClient(Client $inscription)
        {
            $db=connexion::getInstance();
    	$connexion=$db->dbh;
    	$insert = $connexion->prepare('INSERT INTO client (Nom_societe,Nom,Prenom,Numero_tva,Personne_de_contact_idPersonne_de_contact)
                                           VALUES(:Nom_societe,:Nom,:Prenom,:Numero_tva,:id_pc)');
            echo var_dump($insert);
    	try
    	{
    	    $success = $insert->execute(array(
    		':Nom_societe'=>$inscription->getNom_societe(),
                    ':Nom'=>$inscription->getNom_contact(),
                    ':Prenom'=>$inscription->getPrenom_contact(),
    		':Numero_tva'=>$inscription->getNoTVA(),
                    ':id_pc'=>$inscription->getId_pers_contact()
    		));
                $lastId = $connexion->LastInsertId();
    	    if($success == true ) 
                {
    		echo "Réussi";
    	    } 
    	    else
    	    {
    		echo "Pas réussi";
    	    }
            }catch( Exception $e )
    	{
    	    echo 'Erreur de requète : ', $e->getMessage();
    	}
            $maj = $connexion->prepare('UPDATE client set IdClient_sha1=:idsha1 where IdClient = :id_client');
            print_r($maj);
            echo var_dump($maj);
            try
    	{
    	    $success = $maj->execute(array(
    		':idsha1'=>sha1($lastId),
                    ':id_client'=>$lastId
    		));
     
    	    if($success == true ) 
                {
    		 echo "Réussi";
    	    } 
    	    else
    	    {
    		 echo "Pas réussi";
    	    }
            }catch( Exception $e )
    	{
    	    echo 'Erreur de requète : ', $e->getMessage();
    	}
            $insert = $connexion->prepare('INSERT INTO intermediaire_has_client (Intermediaire_IdIntermediaire,Client_IdClient) VALUES (:id_int,:id_cli)');
            print_r($insert);
            echo var_dump($insert);
            try
    	{
     
    	    $success = $insert->execute(array(
    		':id_int'=>$inscription->getId_intermediaire(),
                    ':id_cli'=>$lastId
    		));
     
    	    if($success == true ) 
                {
    		echo "Réussi";
    	    } 
    	    else
    	    {
    		 echo "Pas réussi";
    	    }
            }catch( Exception $e )
    	{
    	    echo 'Erreur de requète : ', $e->getMessage();
    	}
            $insert = $connexion->prepare('INSERT INTO adresse (Rue,Numero,Boite,Code_postal,Localite,Pays,Email,Tel1,Fax,GSM,Client_IdClient,Intermediaire_IdIntermediaire)
                                          VALUES (:Rue,:Numero,:Boite,:Code_postal,:Localite,:Pays,:Email,:Tel1,:Fax,:GSM,:Client_IdClient,:int_idInt)');
            print_r($insert);
            echo var_dump($insert);
            try
            {
                $success = $insert->execute(array(
                    ':Rue'=>$inscription->getContact_rue(),
                    ':Numero'=>$inscription->getNo(),
                    ':Boite'=>$inscription->getBoite(),
                    ':Code_postal'=>$inscription->getCp(),
                    ':Localite'=>$inscription->getNom_loc(),
                    ':Pays'=>$inscription->getPays(),
                    ':Email'=>$inscription->getEmail_contact(),
                    ':Tel1'=>$inscription->getTel_contact(),
                    ':Fax'=>$inscription->getFax_contact(),
                    ':GSM'=>$inscription->getGsm_contact(),
                    ':Client_IdClient'=>$lastId,
                    ':int_idInt'=>$inscription->getId_intermediaire()
                ));
     
     
                if($success==true)
                {
                     echo "réussi";
                }
                else
                {
                    echo "pas réussi";
                }
            }
            catch( Exception $e)
            {
                echo 'Erreure de requète : ', $e->getMessage();
            }
        }
    C'est le code de la fonction d'ajout. Ici, le message que j'ai dans firebug via le xhr de l'onglet Réseau (quand ça fonctionne) :
    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
    object(PDOStatement)[5]
      public 'queryString' => string 'INSERT INTO client (Nom_societe,Nom,Prenom,Numero_tva,Personne_de_contact_idPersonne_de_contact)
     
                                           VALUES(:Nom_societe,:Nom,:Prenom,:Numero_tva,:id_pc)' (length=189)
     
    RéussiPDOStatement Object ( [queryString] => UPDATE client set IdClient_sha1=:idsha1 where IdClient = :id_client )
     
    object(PDOStatement)[6]
      public 'queryString' => string 'UPDATE client set IdClient_sha1=:idsha1 where IdClient = :id_client' (length=67)
     
    RéussiPDOStatement Object ( [queryString] => INSERT INTO intermediaire_has_client (Intermediaire_IdIntermediaire,Client_IdClient) VALUES (:id_int,:id_cli) )
     
    object(PDOStatement)[7]
      public 'queryString' => string 'INSERT INTO intermediaire_has_client (Intermediaire_IdIntermediaire,Client_IdClient) VALUES (:id_int,:id_cli)' (length=109)
     
    RéussiPDOStatement Object ( [queryString] => INSERT INTO adresse (Rue,Numero,Boite,Code_postal,Localite,Pays,Email,Tel1,Fax,GSM,Client_IdClient,Intermediaire_IdIntermediaire) VALUES (:Rue,:Numero,:Boite,:Code_postal,:Localite,:Pays,:Email,:Tel1,:Fax,:GSM,:Client_IdClient,:int_idInt) )
     
    object(PDOStatement)[5]
      public 'queryString' => string 'INSERT INTO adresse (Rue,Numero,Boite,Code_postal,Localite,Pays,Email,Tel1,Fax,GSM,Client_IdClient,Intermediaire_IdIntermediaire)
     
                                          VALUES (:Rue,:Numero,:Boite,:Code_postal,:Localite,:Pays,:Email,:Tel1,:Fax,:GSM,:Client_IdClient,:int_idInt)' (length=277)
     
    réussi
    Quand ça fonctionne pas :
    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
    object(PDOStatement)[5]
      public 'queryString' => string 'INSERT INTO client (Nom_societe,Nom,Prenom,Numero_tva,Personne_de_contact_idPersonne_de_contact)
     
                                           VALUES(:Nom_societe,:Nom,:Prenom,:Numero_tva,:id_pc)' (length=189)
     
    Pas réussiPDOStatement Object ( [queryString] => UPDATE client set IdClient_sha1=:idsha1 where IdClient = :id_client )
     
    object(PDOStatement)[6]
      public 'queryString' => string 'UPDATE client set IdClient_sha1=:idsha1 where IdClient = :id_client' (length=67)
     
    RéussiPDOStatement Object ( [queryString] => INSERT INTO intermediaire_has_client (Intermediaire_IdIntermediaire,Client_IdClient) VALUES (:id_int,:id_cli) )
     
    object(PDOStatement)[7]
      public 'queryString' => string 'INSERT INTO intermediaire_has_client (Intermediaire_IdIntermediaire,Client_IdClient) VALUES (:id_int,:id_cli)' (length=109)
     
    Pas réussiPDOStatement Object ( [queryString] => INSERT INTO adresse (Rue,Numero,Boite,Code_postal,Localite,Pays,Email,Tel1,Fax,GSM,Client_IdClient,Intermediaire_IdIntermediaire) VALUES (:Rue,:Numero,:Boite,:Code_postal,:Localite,:Pays,:Email,:Tel1,:Fax,:GSM,:Client_IdClient,:int_idInt) )
     
    object(PDOStatement)[5]
      public 'queryString' => string 'INSERT INTO adresse (Rue,Numero,Boite,Code_postal,Localite,Pays,Email,Tel1,Fax,GSM,Client_IdClient,Intermediaire_IdIntermediaire)
     
                                          VALUES (:Rue,:Numero,:Boite,:Code_postal,:Localite,:Pays,:Email,:Tel1,:Fax,:GSM,:Client_IdClient,:int_idInt)' (length=277)
     
    pas réussi
    La seule différence se trouve au niveau du Réussi / Pas réussi...

    Pour résumer, il faut se connecter à l'espace membre et de là on peut ajouter des clients, ça marche avec un membre mais pas avec un autre (j'ai fait les tests qu'avec 2 membres...).

    J'ai dit que j'avais testé dans la partie sql de phpmyadmin mais c'était avant le bug et vu que ça marche pour un client, je pensais que la requête était bonne.

    J'ai rééditer le message pour ce qui suit :

    J'ai refait un test et c'est un soucis de contrainte référentielle... Mais je voudrais savoir s'il est possible d'avoir le message d'erreur de phpmyadmin lorsque j'encode les requêtes directement dans firebug, pour pas devoir encoder "à la main" la requête ?

    Je peux considérer le problème que j'ai comme résolu mais si quelqu'un sait comment avoir ce message d'erreur directement dans fire bug ça m'arrangerait beaucoup.

    Un grand merci,

    Axel

  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
    Par défaut
    Il faut que tu actives les exceptions PDO pour voir les erreurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    Au passage c'est var_dump() et pas echo var_dump()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 13
    Par défaut
    Salut,

    Merci, je viens de voir que t'avais répondu à ma question avant que je modifie le dernier message posté :-).

    Je faire ce que tu me proposes et les ajouter au code.

    Un grand merci pour l'info,

    Axel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur 500 PHP + MySQL
    Par AimStar dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 26/09/2013, 11h43
  2. Message d'erreur page PHP et MySQL
    Par littlesnoopy dans le forum Installation
    Réponses: 6
    Dernier message: 19/01/2007, 10h25
  3. [Sessions] Message erreur PHP création de session
    Par Ylias dans le forum Langage
    Réponses: 2
    Dernier message: 29/09/2005, 11h11
  4. [SGBD] [php/mySql] Récuperation numéro de l'erreur
    Par fab22montpellier dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/09/2005, 11h46
  5. [php][mysql]Enlever message d'erreur
    Par Destampy dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/05/2005, 10h19

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