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 :

Variable globale: une notion qui m'échappe [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é
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut Variable globale: une notion qui m'échappe
    Bonjour

    Dans un fichier config, je fais ma connexion MySQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $link = mysql_connect($mySqlHost, $mySqlName, $mySqlPw) or die($content['no_connect']);
    J'aimerais donc que $link soit disponible partout. La façon de faire, si j'ai bien compris, est que, en plus de l'include du fichier config.php, je dois écrire

    partout où je veux l'utiliser? Ou si je peux l'utiliser partout où le fichier config est inclut?

    Merci

  2. #2
    Membre éprouvé Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Par défaut
    La possibilité d'utiliser les variables globales est spécifié par l'option éponyme de php.ini
    Maintenant, il est dangereux d'autoriser cela pour la sécurité de ton site. Il n'est absolument pas contraignant de réouvrir et fermer l'accès à ta base à chaque page de ton script. C'est très rapide. Le gain que tu vas avoir est plutôt médiocre à autoriser des variables globales

  3. #3
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Citation Envoyé par Prosis Voir le message
    Bonjour

    Dans un fichier config, je fais ma connexion MySQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $link = mysql_connect($mySqlHost, $mySqlName, $mySqlPw) or die($content['no_connect']);
    J'aimerais donc que $link soit disponible partout. La façon de faire, si j'ai bien compris, est que, en plus de l'include du fichier config.php, je dois écrire

    partout où je veux l'utiliser? Ou si je peux l'utiliser partout où le fichier config est inclut?

    Merci
    Tu peux utiliser la variable de partout, sauf dans les fonctions ou les class, et dans ce cas tu peux mettre :
    Mais bon si tu utilises mysql, et que tu n'utilise qu'une seule connexion, pas besoin de faire de globale, php utilisera le premier lien base de données qui trouveras.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Partout ou l'include est effectué.

    L'avantage de cette technique est le suivant:

    imaginons que tu aies la chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $link=connection mysql..
     
    funtion check_connection(){
      if($link){
      } 
    }
     
    check_connection();
    Dans l'exemple ci-dessus, $link ne sera pas "défini" dans la fonction check_connection alors que tu en aurais besoin pour tester une connexion mysql.
    Par contre, si tu le déclares en global, tu peux utiliser la variable dans toutes les fonctions de ton site !
    Evidemment, il faut inclure le fichier config partout ou tu en as besoin.

    Il est vrai que le mot global porte à confusion ceci dit.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Ok j'aurais besoin d'éclaicissements sur vos trois réponses qui me semblent très différentes lol

    Ok, donc si je fais comme j'ai dit, partout où j'incluts le fichier, $link sera automatiquement disponible. Sauf dans les functions et les classes où je devrai utiliser "global $link;"

    Mais ce n'est pas sécuritaire. Mais je ne suis pas certain de comprendre pourquoi...

    bluemartini: Tu crois que je devrais donc faire une fonction connect et close et l'utiliser dans chacunes de mes pages?

  6. #6
    Membre éprouvé Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Par défaut
    Etant donné que je travaille habituellement avec plusieurs bases différentes, j'ai même tendance à inclure l'ouverture et la fermeture de ces accès dans mes fonctions (j'utilise des require spécifiques pour faciliter l'écriture)

  7. #7
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Citation Envoyé par bluemartini Voir le message
    Etant donné que je travaille habituellement avec plusieurs bases différentes, j'ai même tendance à inclure l'ouverture et la fermeture de ces accès dans mes fonctions (j'utilise des require spécifiques pour faciliter l'écriture)
    Attention, l'ouverture et fermeture prend beaucoup de temps.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Mais alors d'après mon résumé, est-ce que j'ai bien compris?

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

Discussions similaires

  1. 2 Variables globales une fonction c'est possible ?
    Par torquemada dans le forum Débuter
    Réponses: 2
    Dernier message: 01/06/2013, 11h33
  2. [XL-2007] Mettre variables dans une matrice qui est utilisée par une fonction
    Par Agalis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/04/2012, 09h08
  3. Variable d'une boucle qui ne se modifie pas
    Par Erast dans le forum Débuter
    Réponses: 4
    Dernier message: 17/04/2010, 20h25
  4. Premiers pas en JAVA et déjà une logique qui m'échappe.
    Par Jean-Jacques Engels dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 16/03/2010, 16h31
  5. Réponses: 2
    Dernier message: 21/01/2010, 17h02

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