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 :

[PHP][MYSQLI] fetch_assoc et free result


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut [PHP][MYSQLI] fetch_assoc et free result
    Bonsoir,

    Dans une requête préparée avec mysqli

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $stmt->execute();
    $res=$stmt->get_result();
    $assoc=$res->fetch_assoc();
    Sur la doc ils utilisent directement

    Donc y a t il besoin de faire (en plus) ?

    comme dans une requête non préparée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ça ne sert à rien d'ouvrir et fermer 1000 fois la connexion.

    On ouvre en début de script, on ferme à la fin.
    Une fois pour toutes.

    N.B. close et free ne servent pas à la même chose.
    RELIS la DOC.

  3. #3
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Merci de votre réponse.
    free result
    Note:

    Vous devriez toujours libérer les résultats avec mysqli_free_result(), lorsque votre objet de résultat ne vous est plus utile.
    execute()
    Ici ils combinent la requête préparée avec une requête normale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $query = "SELECT Name, CountryCode, District FROM myCity";
    if ($result = $mysqli->query($query)) {
        while ($row = $result->fetch_row()) {
            printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
        }
        /* Libère le résultat */
        $result->close();
    }
    Et la il le libere avec close ? J'ai du louper un truc

    Y a aucun exemple de requête préparée avec fetch assoc


    Les connexions et les jeux de résultats ouverts de facçon non persistents sont automatiquement détruits lorsqu'un script PHP termine son exécution. Aussi, le fait de fermer une connexion et libérer les résultats étant optionnel, le fait de le faire explicitement est néanmoins vivement recommandé. Ceci va retourner les ressources immédiatement à PHP et à MySQL, ce qui va améliorer les performance. Pour plus d'informations, référez-vous à la libération des ressources

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    close
    Ferme une requête préparée. mysqli_stmt_close() libère le pointeur utilisé par stmt. Si la requête est en attente ou bien que les résultats ne sont pas encore lus, cette fonction les annulera et, donc, la prochaine requête pourra être exécutée.
    free_​result
    Libère le résultat stmt de la mémoire. stmt a été obtenu de la fonction mysqli_stmt_store_result().
    Pour moi, si tu as utilisé store_result, il faut utiliser free_result. Par contre, close ne me parait pas indispensable, sauf si tu n'as pas lu la totalité des résultats de la requête précédente (genre un seul fetch pour un résultat à plusieurs lignes)

    Cela dit, je n'utilise pas mysqli (que je trouve inutilement compliqué par rapport à PDO), donc il est possible que ce que je dis ne soit pas exact.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    A croire que jaime me compliquer la vie

    pour mysqli j'utilise plutot get_result() pour un fetch assoc
    Mais ce site la est vraiment mal foutu
    Ils mettent des commentaires qui ne corespondent pas aux définitions ou inversement donc on se perd facilement
    et il manque d'explication

    exemple
    j'ai du passer des heures pour trouver une solution pour passer un array a bind_param
    c'est vrai qu'a ce niveau PDO est beaucoup plus simple

  6. #6
    Invité
    Invité(e)
    Par défaut
    Un jour ou l'autre, tu devras passer à PDO.
    Autant le faire tout de suite.

Discussions similaires

  1. [MySQL] Code PHP et erreur serveur Free : "Parse error: syntax error, unexpected '{' "
    Par mauriiice dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/05/2009, 20h47
  2. Php inférieur à 5 chez Free
    Par jlb59 dans le forum Langage
    Réponses: 11
    Dernier message: 13/11/2008, 19h00
  3. Extension PHP Ming disponible chez Free ?
    Par Flameo dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 24/04/2008, 17h26
  4. Réponses: 2
    Dernier message: 26/03/2008, 00h01
  5. [Mail] Php et calendrier sous free
    Par eXiaNazaire dans le forum Langage
    Réponses: 7
    Dernier message: 13/03/2006, 09h24

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