Section courante

A propos

Section administrative du site

DBI

Interface de base de données
Perl
 

Description

Ce module contient une interface pour l'utilisation de base de données.

Liste des méthodes

Voici la liste des méthodes disponibles dans la classe «DBI» :

Nom Méthode Description
BIND_COL $rc = $sth->bind_col($column_number, \$var_to_bind);
$rc = $sth->bind_col($column_number, \$var_to_bind, \%attr );
$rc = $sth->bind_col($column_number, \$var_to_bind, $bind_type );
Ces méthodes permettent d'effectuer une liaison de variable Perl et/ou d'attributs à un champ de sortie d'une instruction SQL «SELECT».
BIND_PARAM $rc = $sth->bind_param($p_num, $bind_value);
$rc = $sth->bind_param($p_num, $bind_value, $bind_type);
$rc = $sth->bind_param($p_num, $bind_value, \%attr);
Ces méthodes permettent de prendre une valeur spécifié et la mettre à la position spécifié dans la requête SQL en préparation.
BIND_PARAM_ARRAY $rc = $sth->bind_param_array($p_num, $array_ref_or_value);
$rc = $sth->bind_param_array($p_num, $array_ref_or_value, \%attr);
$rc = $sth->bind_param_array($p_num, $array_ref_or_value, $bind_type);
Ces méthodes permettent de prendre un tableau de valeurs spécifiés et les mets à la position spécifié dans la requête SQL en préparation.
BIND_PARAM_INOUT $rc = $sth->bind_param_inout($p_num, \$bind_value, $max_len);
$rv = $sth->bind_param_inout($p_num, \$bind_value, $max_len, \%attr);
$rv = $sth->bind_param_inout($p_num, \$bind_value, $max_len, $bind_type);
Ces méthodes permettent d'activer une valeur spécifié et la mettre à la position spécifié dans la requête SQL en préparation.
CONNECT $dbh = DBI->connect($data_source, $username, $auth, \%attr); Cette méthode permet d'effectuer une connexion à la base de données.
DO $rv = $dbh->do($statement);
$rv = $dbh->do($statement, \%attr);
$rv = $dbh->do($statement, \%attr, @bind_values);
Ces méthodes permettent de préparer et d'exécuter les instructions SQL spécifiés.
EXECUTE $rv = $sth->execute;
$rv = $sth->execute(@bind_values);
Ces méthodes permettent d'exécuter la requête SQL en préparation.
EXECUTE_ARRAY $tuples = $sth->execute_array(\%attr);
$tuples = $sth->execute_array(\%attr, @bind_values);
($tuples, $rows) = $sth->execute_array(\%attr);
($tuples, $rows) = $sth->execute_array(\%attr, @bind_values);
Ces méthodes permettent d'exécuter la requête SQL en préparation pour chaque groupe de valeurs fournit.
EXECUTE_FOR_FETCH $tuples = $sth->execute_for_fetch($fetch_tuple_sub);
$tuples = $sth->execute_for_fetch($fetch_tuple_sub, \@tuple_status);
($tuples, $rows) = $sth->execute_for_fetch($fetch_tuple_sub);
($tuples, $rows) = $sth->execute_for_fetch($fetch_tuple_sub, \@tuple_status);
Ces méthodes permettent d'exécuter la requête SQL en préparation pour chaque groupe de valeurs fournit sans contrainte de rangée.
FETCH $ary_ref = $sth->fetch; Cette méthode permet de récupérer le prochaine enregistrement de données et demande une référence à un tableau contenant les valeur de ce champ.
FETCHALL_ARRAYREF $tbl_ary_ref = $sth->fetchall_arrayref;
$tbl_ary_ref = $sth->fetchall_arrayref($slice);
$tbl_ary_ref = $sth->fetchall_arrayref($slice, $max_rows);
Cette méthode permet de récupérer tous les données à retourner pour la préparation et l'exécution de la requête SQL.
FETCHALL_HASHREF $hash_ref = $sth->fetchall_hashref($key_field); Cette méthode permet de récupérer tous les données à retourner pour la préparation et l'exécution de la requête SQL dans un tableau haché.
FETCHROW_ARRAYREF $ary_ref = $sth->fetchrow_arrayref; Cette méthode permet de récupérer le prochaine enregistrement de données et demande une référence à un tableau contenant les valeur de ce champ.
FETCHROW_ARRAY @ary = $sth->fetchrow_array; Cette méthode permet de récupérer le prochaine enregistrement de données et demande une liste des valeurs de ce champ.
FETCHROW_HASHREF $hash_ref = $sth->fetchrow_hashref($name); Cette méthode permet de récupérer le prochaine enregistrement de données et demande une référence de paire de nom de champ et de valeur de champ.
FINISH $rc = $sth->finish; Cette méthode permet d'indiquer qu'il n'y aura plus de données récupérer avant que soit exécuté une nouvelle requête SQL ou quel soit libéré de la mémoire.
PREPARE $sth = $dbh->prepare($statement);
$sth = $dbh->prepare($statement, \%attr);
Ces méthodes permettent de préparer les instructions SQL pour qu'il soit exécuter plus tard.
ROWS $rv = $sth->rows; Cette méthode permet de demander le nombre d'enregistrement affecté par la dernière requête SQL ou -1 si le nombre d'enregistements est inconnus ou indisponible.
SELECTALL_ARRAYREF $ary_ref = $dbh->selectall_arrayref($statement);
$ary_ref = $dbh->selectall_arrayref($statement, \%attr);
$ary_ref = $dbh->selectall_arrayref($statement, \%attr, @bind_values);
Ces méthodes permettent de préparer, d'exécuter et de retourner un tableau par référence de tous les éléments.
SELECTROW_HASHREF $hash_ref = $dbh->selectrow_hashref($statement);
$hash_ref = $dbh->selectrow_hashref($statement, \%attr);
$hash_ref = $dbh->selectrow_hashref($statement, \%attr, @bind_values);
Ces méthodes permettent de préparer, d'exécuter et de retourner un tableau haché de tous les éléments.

Exemple

Ensuite, en supposant que vous avez une base de données nommé «mabasededonnees» dans votre base de données MySQL avec la table «cdmworkgroup» ayant le contenu suivante :

Cin WorkGroupId Name_EN Name_FR Description Status CreateDate CreateUserId LastUpdate UpdateUserId
000 0000023901 Coder Développement Groupe de programmeur effectuant de la recherche et développement (R&D). A 2006/03/09 SYSADM 2006/03/09 SYSADM
000 0000023902 Maintenance Maintenance Groupe maintenant les divers services réseaux, implantant les développements, maintenant l'état actuel du matériel et administratant les accès. A 2006/03/09 SYSADM 2006/03/09 SYSADM
000 0000023903 Direction Direction Direction Groupe de travail s'occupant des divers orientations à prendre sur les projets et les produits. I 2006/03/09 SYSADM 2006/03/09 SYSADM
075 0000000068 Test Teste Groupe désigné pour le contrôle de la Qualité A 2006/03/09 STREMBLAY 2006/03/09 STREMBLAY

Grâce à ce petit programme, vous pourrez afficher la table «cdmworkgroup» :

  1. #!/usr/bin/perl
  2.  
  3. use DBI;
  4.  
  5. my $Conn = DBI->connect( "dbi:mysql:,mabasededonnees;host=localhost", "root", "motdepasse" )
  6.     or die "Connexion impossible: $DBI::errstr\n";
  7.  
  8. $sth    = $Conn->prepare("SELECT Name_EN,Name_FR FROM cdmworkgroup ");
  9. $Result = $sth->execute;
  10.  
  11. while ($CurrLine = $sth->fetchrow_hashref) {
  12.  print $CurrLine->{Name_EN} . ", " . $CurrLine->{Name_FR} . "\n";
  13. }

on obtiendra le résultat suivant :

Test, Teste
Coder, Développement
Maintenance, Maintenance
Direction, Direction

Voir également

Langage de programmation - Perl - Affiche une table dans une base de données MySQL

Dernière mise à jour : Dimanche, le 18 octobre 2015