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 :

Message d'erreur quand une requête échoue [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut Message d'erreur quand une requête échoue
    Bonjour,

    Je viens de tester ma première requête et la gestion des erreurs et je n'en reviens pas.
    Si par exemple dans un SELECT on fait une erreur sur l'orthographe d'une colonne, on obtient l'erreur
    expects exactly 1 parameter, 0 given
    J'avais exactement le même message inutile avec ColdFusion et une bd Access sous ODBC.
    Quel genre de parser est utilisé qui n'est pas capable de dire
    unknown column name : ...
    ?

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Encore faudrait-il qu'il sache que c'est bien le nom d'une colonne que tu voulais mettre.

    Visiblement, la syntaxe SQL permet de spécifier soit le nom d'une colonne, soit le nom d'un paramètre. Par défaut, ton parser, ne reconnaissant pas une colonne, se dit que c'est surement un paramètre et attend donc que tu lui fournisse la valeur de ce paramètre mais tu n'en fournie aucune, d’où le message d'erreur "1 paramètre attendu, 0 reçu"

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    d’où le message d'erreur "1 paramètre attendu, 0 reçu"
    Bon, d'accord, mais s'il ne reçoit pas de valeur pour le paramètre, il pourrait au moins donner son nom, et même revenir en arrière, sa supposition n'étant pas vérifiée et supposer qu'il s'agit bel est bien d'une colonne erronée puisqu'il n' a pas de valeur de paramètre.

  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
    Je ne sais pas ce que tu fais mais l'erreur Mysql en cas de cas inconnu est bien, par exemple dans un SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1054 - Unknown column 'zorglub' in 'field list'
    Concernant ton message, si tu n'as pas de question et qu'il s'agit seulement d'exprimer ce qui ne te plait, c'est un peu inutile, nous sommes ni les developpeurs, ni le service apres-vente de PHP et de Mysql.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre chevronné Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Par défaut
    Bonsoir,

    Quel genre de parser est utilisé qui n'est pas capable de dire
    C'est un parseur haute performance pour la production.

    Si tu souhaite un parser qui t'indique de beau message d'erreur, il te faudra utiliser un debugger SQL

    Bien à toi,

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je ne sais pas ce que tu fais mais l'erreur Mysql en cas de cas inconnu est bien, par exemple dans un SELECT :
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $sql = <<<SQL
      SELECT Matricule,
        zorglub
      FROM personnes
    SQL;
    $getMembers_res = $application->database->query($sql) or trigger_error(mysqli_error(), E_USER_ERROR);
    ?>
    Ça me donne bien
    mysqli_error() expects exactly 1 parameter, 0 given
    À mon tour de te demander comment tu fais ?
    Concernant ton message, si tu n'as pas de question
    Ah mais qui sait ? Je vais peut-être finir par savoir comment obtenir un « vrai » message d'erreur.

  7. #7
    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
    Le message d'erreur porte sur la fonction mysqli_error() pas sur la requête. Tu n'as pas indiqué l'identifiant de la connexion et c'est bien ce que te dis l'erreur : il faut 1 paramètre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [AC-2013] Message d'erreur inconnu sur une requête : #Fonct!
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/09/2015, 12h11
  2. Attraper message d'erreur lors d'une requête d'ajout
    Par steps5ive dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/12/2006, 16h53
  3. Erreur lors d'une requête d'ajout
    Par olivia.of dans le forum Access
    Réponses: 13
    Dernier message: 14/02/2006, 12h18
  4. [Formulaire] Gestion erreur saisie d'une requête
    Par b_steph_2 dans le forum IHM
    Réponses: 6
    Dernier message: 05/01/2006, 16h40
  5. [C#] Message d'erreur vide dans une replication et rda
    Par Roach- dans le forum Windows Forms
    Réponses: 25
    Dernier message: 05/04/2005, 15h19

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