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 :

Comprendre un script [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut Comprendre un script
    Bonjour,

    J'ai un script à étudier, qu insère des éléments dans une base de données mysql.
    il y a une chose que je ne comprends pas sur ce script : $dbh. A quoi cela correspond-il ? J'ai essayer de le remplacer par un terme bidon, et le script marche tout autant, mais je ne vois pas à quelle variable cela fait référence.

    Voici le script :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <!-- Listing 16-5: Creating the sample tables -->
    <?php
    include("connection.php");
    $global_dbh = mysql_connect($hostname, $username, $password)
                  or die("Could not connect to database");
    mysql_select_db($db, $global_dbh)
                  or die ("Could not select databased");
     
    function add_new_country($dbh, $continent, $countryname,
                               $city_array)
     
    {
      $country_query =
        "insert into country (continent, countryname)
         values ('$continent', '$countryname')";
      $result_id =  mysql_query($country_query)
                    OR die($country_query . mysql_error());
      if ($result_id)
        {
          $countryID = mysql_insert_id($dbh);   
          for ($city = current($city_array);
               $city;
               $city = next($city_array))
            {
               $city_query =
                  "insert into city (countryID, cityname)
                          values ($countryID, '$city')";
               mysql_query($city_query, $dbh)
                  OR die($city_query . mysql_error());
            }
        }
    }
     
    function populate_cities_db($dbh)
    {
      /* drop tables if they exist -- permits function to be
         tried more than once */
      mysql_query("drop table city", $dbh);
      mysql_query("drop table country", $dbh);
     
      /* create the tables */
      mysql_query("create table country
                   (ID int not null auto_increment primary key,
                    continent varchar(50),
                    countryname varchar(50))",
                  $dbh)
                  OR die(mysql_error());
      mysql_query("create table city
                   (ID int not null auto_increment primary key,
                    countryID int not null,
                    cityname varchar(50))",
                  $dbh)
                  OR die(mysql_error());
     
      /* store data in the tables */
      add_new_country($dbh, 'Africa', 'Kenya',
                array('Nairobi','Mombasa','Meru'));
      add_new_country($dbh, 'South America', 'Brazil',
                array('Rio de Janeiro', 'Sao Paulo',
                         'Salvador', 'Belo Horizonte'));
      add_new_country($dbh, 'North America', 'USA',
                array('Chicago', 'New York', 'Houston', 'Miami'));
      add_new_country($dbh, 'North America', 'Canada',
                array('Montreal','Windsor','Winnipeg'));
     
      print("Sample database created<BR>");
    }
    ?>
     
    <HTML><HEAD><TITLE>Creating a sample database</TITLE></HEAD>
    <BODY>
    <?php populate_cities_db($global_dbh); ?>
    </BODY></HTML>
    Merci de votre aide

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    $dbh, normalement d'après tes fonctions, est le string de connection à la base de données.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    Je ne comprends pas. J'ai plutôt l'impression que dans ce script cette ligne de connexion est $global_dbh, qui est une variable avec des données à l'intérieur.

    J'ai vu sur un tuto qu'il pouvait y avoir des pointeurs, sortes de variables vides, qui permettent de récupérer des contenus dans le cours du script. Est-ce que ce ne serait pas plutôt quelque chose comme cela ?

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php populate_cities_db($global_dbh); ?>
    tu appelles cette fonctions, qui prend donc en paramètre ton string de connections.

    si tu regardes la constructions de cette fonctions, c'est bien une connections à la db qu'il attends.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function populate_cities_db($dbh)
    {
      /* drop tables if they exist -- permits function to be
         tried more than once */
      mysql_query("drop table city", $dbh);
      mysql_query("drop table country", $dbh....

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    Alors on peut remplacer le nom d'un paramètre par un autre nom dans une fonction ? Le deuxième paramètre ayant valeur identique au premier ? Si oui, quel est l'intérêt ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    On est dans le principe des portées de variables.

    Le paramètre que reçois une fonctions n'est utilisable que dans l'ensemble de cette fonction.

    Cela permet de cerner son environnement, tout n'est question que de convention personnelle.

    dans le cas présent

    $global_dbh est le nom de la variable contenant le string de connections de ton applications et pour le différencier dans sa fonction, la paramètres porte un autre nom.

    prenons un exemple simple.

    via un formulaire je veux afficher ton prénom, je vais récupérer cette valeur vie une méthode Post par exemple.

    je crée un fonction qui affiche ton prénom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    function affichePrenom($prenom)
    {
        echo $prenom;
    }
    et puis j'appelle cette function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    affichePrenom($_POST['prenom'])
    Dans ce cas précis, vu que j'ai un nom de variable compréhensible, on sait directement ce que je cherche à faire, vois-tu l'intérêt ?

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

Discussions similaires

  1. Comprendre un script ?
    Par cestbienlesforums dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2012, 12h03
  2. Modifier et comprendre un script de slide d'images
    Par norihiori dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/12/2011, 02h43
  3. [VBS] comprendre ce script de ThierreyAIM
    Par Gunner4902 dans le forum VBScript
    Réponses: 2
    Dernier message: 03/09/2008, 16h18
  4. aide pour comprendre des Script perl
    Par la_star160 dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2008, 20h40
  5. [AJAX] Comprendre un script ajax pour l'adapter
    Par whitespirit dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/05/2008, 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