La connexion à un système de gestion de base de données s'effectue par l'entremise des fonctions spécialisées.

mysql_connect("nom_serveur","nom_utilisateur","mot_passe");

mssql_connect("nom_serveur","nom_utilisateur","mot_passe");

ocilogon("nom_utilisateur","mot_passe", "nom_base");

pg_connect("dbname=nom_base host=nom_serveur port=num_port " 
                 . "user=nom_utilisateur password=mot_passe");

sybase_connect("nom_serveur","nom_utilisateur","mot_passe");

Il existe deux façons de se connecter à une base de données.

  • Les connexions non-persistantes (base_connect).
  • Les connexions persistantes (base_pconnect).

Tout d'abord, les deux type de connexions sont parfaitement identiques au niveau des fonctionnalités qu'elles apportent. Néanmoins, les connexions persistantes ne se referment pas automatiquement à la fin du script. Lorsqu'une telle connexion est demandée, PHP s'assure qu'il n'existe pas un processus semblable, déjà ouvert avec les noms de serveur et d'utilisateur ainsi que le mot de passe. Si tel est le cas, ce processus est réutilisé sinon une nouveau est ouvert.

Ainsi, le principal avantage des connexions persistantes et leur réutilisabilité et partant l'impossiblité d'ouvertures multiples de connexions à un SGBDR. Toutefois, il est impératif de s'assurer de la fermeture correcte des processus au terme de leur utilisation puisque si le serveur n'admet qu'un certain nombre de clients alors une connexion inutilisée constituera une perte de capacités.

La déconnexion des bases de données s'effectue par l'intermédiaire des fonctions de fermeture.

mysql_close($id_connexion);

mssql_close($id_connexion);

ocilogoff($id_connexion);

pg_close($id_connexion);

sybase_close($id_connexion);

Plusieurs fonctions PHP permettent de retourner des informations à propos de la connexion en cours.

$chaine_numero_version = mysql_get_client_info();
$type_connexion = mysql_get_host_info($id_connexion);
$protocole_connexion = mysql_get_proto_info($id_connexion);
$chaine_version_serveur = mysql_get_server_info($id_connexion);

$nom_hote = pg_host($id_connexion);
$option_connexion = pg_options($id_connexion);
$num_port = pg_port($id_connexion);
pg_set_client_encoding($id_connexion, $encodage);
$encodage = pg_client_encoding($id_connexion);
Exemple [voir]
<?php
  // Fichier : traitement.php
  function connexion($sgbdr, $hote, $port, 
                               $utilisateur, $mot_passe, $param_sup)
  {
  if ($type == "")
  {
      echo ("Aucun SGBDR n'a été spécifié !");
      return false;
  }
  else
  {
      switch ($type)
      {
        case "MySQL" :
        {
          if ($port != "") $hote .= ":". $port;
          $id_connexion = mysql_connect($hote, $utilisateur, $mot_passe);
        }
        case "mSQL" :
        {
          if ($port != "") $hote .= ":". $port;
          $id_connexion = msql_connect($hote, $utilisateur, $mot_passe);
        }
        case "SQLSever" :
        {
          $id_connexion = mssql_connect($hote, $utilisateur, $mot_passe);
        }
        case "ODBC" :
        {
        if ($param_sup == "")
          $id_connexion = 
                odbc_connect($hote, $utilisateur, $mot_passe);
        else
          $id_connexion = 
                odbc_connect($hote, $utilisateur, $mot_passe, $param_sup);
        }
        case "Oracle" :
        {
          $id_connexion = ocilogon($utilisateur, $mot_passe);
        }
        case "PostgreSQL" :
        {
          $chaine_connexion = "host=". $hote . " ";
          if ($port != "") $chaine_connexion .= "port=". $port . " ";
          $chaine_connexion .= "user=". $utilisateur ." password=". $mot_passe";
          if ($param_sup != "") $chaine_connexion .= " ".$param_sup;
          $id_connexion = pg_connect($chaine_connexion);
        }
        case "Sybase" :
        {
          if ($param_sup == "")
          {
            $id_connexion = 
                sybase_connect($hote, $utilisateur, $mot_passe);
          }
          else
          {
            $id_connexion = 
                sybase_connect($hote, $utilisateur, $mot_passe, $param_sup);
          }
        }
        default :
        {
          echo ("Le SGBDR " . $sgbdr . " n'est pas géré.");
          return false;
        }
      }
      return true;
    }
  }

  connexion($nom_sgbdr, $nom_serveur, $num_port, 
                  $nom_utilisateur, $mot_de_passe, $autre_param);
?>
<!-- Fichier : formulaire.php -->
<html>
  <body>
    <form action="traitement.php" method="POST">
      <table>
        <tr>
          <td>Nom</td>
          <td>: <input type="text" size="20" name="nom_utilisateur"></td>
        </tr>
        <tr>
          <td>Mot de passe</td>
          <td>: <input type="password" size="20" name="mot_de_passe"></td>
        </tr>
        <tr>
          <td>Serveur hôte</td>
          <td>: <input type="text" size="20" name="nom_serveur" 
                           value="<?php echo $SERVER_NAME ?>"></td>
        </tr>
        <tr>
          <td>Numéro de port</td>
          <td>: <input type="text" size="20" name="num_port" 
                           value="<?php echo $SERVER_PORT ?>"></td>
        </tr>
        <tr>
          <td>Nom SGBDR</td>
          <td>: <input type="text" size="20" name="nom_sgbdr"></td>
        </tr>
        <tr>
          <td>Autre paramètre</td>
          <td>: <input type="text" size="20" name="autre_param"></td>
        </tr>
        <tr>
          <td> </td>
          <td><input type="submit" name="Soumission" value="Soumettre"></td>
        </tr>
      </table>
    </form>
  </body>
</html>