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 :

test erreur fetch [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 363
    Par défaut test erreur fetch
    Bonjour,

    Est-ce que je peux écrire ça, svp ?

    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
    $query = mysql_query("SELECT * FROM utilisateurs WHERE id = '$txn_id'");
    if (!$query)
    {
    $err = "%NIP-F-SQLQUERY, Query error " . mysql_errno() . " " . mysql_error();
    mylog ($err);              // log erreur pour debug
    exit;
    }
    $data = mysql_fetch_object($query);
    if (!$data)
    {
    if mysql_errno <> 0
    {
    $err = "%NIP-F-SQLFETCH, Fetch error " . mysql_errno() . " " . mysql_error();
    mylog ($err);
    exit;
    }
    // l'enregistrement n'existe pas
    }
    L'idée étant de différencier le query qui se plante du query qui renvoie une info comme quoi les données n'ont pas été trouvées.

    Merci.

  2. #2
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Hello,

    Qu'entends tu par "query qui plante" et "query qui retourne" ?
    Tu peux pas utiliser mysql_num_rows ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 363
    Par défaut
    J'essaie de faire un truc classique en assembleur

    tester l'appel à une fonction système, ici le query d'une base SQL

    il peut se passer trois choses :

    l'appel à la fonction système se plante, exemple : la base n'est pas connectée
    l'appel est ok mais le query se plante car on veut par exemple interroger un record qui n'existe pas
    l'appel est ok et le query retourne les données demandées.

    Quel rapport avec num_rows ?

    Merci.

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    assembleur & php Je vois pas le rapport.

    Pour sécuriser l’exécution d'une requête MySQL c'est assez simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = "SELECT * FROM truc";
     
    if (!$results = mysql_query($query)) {
      $error = mysql_error();
      // ...
    }
    Pour vérifier que des données sont présentes, c'est aussi simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = "SELECT COUNT(*) FROM truc";
     
    if ($results = mysql_query($query)) {
      $row = mysql_fetch_row($results);
      $count = $row[0];
    }

  5. #5
    Membre éclairé
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 363
    Par défaut
    Ne connaissant pas (encore) bien le php, j'ai simplement exposé ce que je savais faire en assembleur.

    Je ne connaissais pas non plus fetch_row (il y a beaucoup de pages à la doc) mais cela répond à ma question.

    Merci !

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    En réalité, fetch_row est l'un des 3 modes de fetch de mysql_*, je préfère pour ce dernier cas utiliser PDOStatement->fetchColumn qui renvoie directement le résultat du count.

    A noter qu'utiliser une requête count est souvent plus portable que d'utiliser mysql_num_rows car certains drivers ne renvoient pas cette information (et celle-ci varie d'ailleurs d'une version de PHP à l'autre).

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/01/2014, 15h25
  2. [XL-2010] Boucle + Test = Erreur 2042
    Par CristofMartins dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2013, 10h42
  3. javascript test Erreurs console firebug
    Par alain.saez dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/03/2010, 10h15
  4. [Dates] test erreur php
    Par omelhor dans le forum Langage
    Réponses: 3
    Dernier message: 15/07/2007, 18h04
  5. Test erreur : [: 10: =: argument expected
    Par Fluxy dans le forum Linux
    Réponses: 4
    Dernier message: 27/03/2007, 12h23

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