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 :

Type du résultat retourné par MySQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut Type du résultat retourné par MySQL
    On sait que le résultat retourné par une requête MySQL, usuellement dans la ressource $result, peut être de deux types: booléen ou tableau, selon la situation.
    Si la requête a échoué, c'est automatiquement le booléen FALSE: pas de problème.
    Si elle a abouti, cela peut être ou le booléen TRUE, ou un tableau de valeurs, selon la nature de la requête.
    Si l'on IGNORE LE TEXTE DE LA REQUETE (ou si l'on veut écrire une fonction qui exploite le résultat quel qu'en soit le type), existe-t-il un moyen de tester la nature du résultat?
    if($result) est TRUE dans tous les cas;
    if($is_array($result)) est toujours FALSE, puisque $result est une ressource.
    On peut évidemment essayer de le lire comme un tableau au moyen d'une des nombreuses fonctions mysql_fetch_***() et autres. Mais cela entraînera une erreur s'il ne s'agit pas d'un tableau.
    Il semble qu'il n'exite pas d'autre moyen que de vérifier si la commande est de celles qui retournent un booléen (DROP, ALTER, UPDATE, etc.), ou de celles qui retournent un tableau (SELECT, SHOW, EXPLAIN, etc.), ce qui est extrêmement laborieux, et suppose en tout cas que le texte de la requête est accessible.
    Il devrait tout de même exister une solution simple et efficace, non?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 74
    Par défaut
    Dans quel cas est-ce que le retour vaut true ?

    Essai de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($resultat === true) // avec 3 '=' pour tester le type

  3. #3
    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
    peut être de deux types: booléen ou tableau
    non, TRUE, FALSE ou une ressource mysql.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut
    Ça marche avec le triple '='. On n'y pense jamais...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2008, 23h23
  2. Temps retournés par Mysql Query Browser ?
    Par Christophe Charron dans le forum Outils
    Réponses: 2
    Dernier message: 31/08/2006, 10h44
  3. Problème de résultat retourné par une procédure stockée
    Par Access Newbie dans le forum Access
    Réponses: 23
    Dernier message: 17/08/2006, 11h42
  4. PSQLException "Aucun résultat retourné par la requête&q
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/09/2005, 20h55
  5. limiter le résultat retourné par le count
    Par SuperFoustan dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/08/2003, 12h10

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