MySQL - Informations sur la base de données

Obtention et utilisation des métadonnées MySQL

Il existe trois types d'informations que vous souhaitez obtenir de MySQL.

  • Information about the result of queries - Cela inclut le nombre d'enregistrements affectés par toute instruction SELECT, UPDATE ou DELETE.

  • Information about the tables and databases - Cela comprend les informations relatives à la structure des tables et des bases de données.

  • Information about the MySQL server - Cela inclut l'état du serveur de base de données, le numéro de version, etc.

Il est très facile d'obtenir toutes ces informations à l'invite MySQL, mais lors de l'utilisation d'API PERL ou PHP, nous devons appeler explicitement diverses API pour obtenir toutes ces informations.

Obtention du nombre de lignes affectées par une requête

Voyons maintenant comment obtenir ces informations.

Exemple PERL

Dans les scripts DBI, le nombre de lignes affectées est renvoyé par le do( ) ou par le execute( ) commande, selon la manière dont vous exécutez la requête.

# Method 1
# execute $query using do( )
my $count = $dbh->do ($query);
# report 0 rows if an error occurred
printf "%d rows were affected\n", (defined ($count) ? $count : 0);

# Method 2
# execute query using prepare( ) plus execute( )
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d rows were affected\n", (defined ($count) ? $count : 0);

Exemple PHP

En PHP, invoquez le mysql_affected_rows( ) fonction pour savoir combien de lignes une requête a changé.

$result_id = mysql_query ($query, $conn_id);
# report 0 rows if the query failed
$count = ($result_id ? mysql_affected_rows ($conn_id) : 0);
print ("$count rows were affected\n");

Liste des tables et des bases de données

Il est très facile de lister toutes les bases de données et les tables disponibles avec un serveur de base de données. Votre résultat peut êtrenull si vous ne disposez pas des privilèges suffisants.

En dehors de la méthode illustrée dans le bloc de code suivant, vous pouvez utiliser SHOW TABLES ou SHOW DATABASES requêtes pour obtenir la liste des tables ou bases de données en PHP ou en PERL.

Exemple PERL

# Get all the tables available in current database.
my @tables = $dbh->tables ( );

foreach $table (@tables ){
   print "Table Name $table\n";
}

Exemple PHP

<?php
   $con = mysql_connect("localhost", "userid", "password");
   
   if (!$con) {
      die('Could not connect: ' . mysql_error());
   }
   $db_list = mysql_list_dbs($con);

   while ($db = mysql_fetch_object($db_list)) {
      echo $db->Database . "<br />";
   }
   mysql_close($con);
?>

Obtention des métadonnées du serveur

Il existe quelques commandes importantes dans MySQL qui peuvent être exécutées à l'invite MySQL ou en utilisant n'importe quel script comme PHP pour obtenir diverses informations importantes sur le serveur de base de données.

N ° Sr. Commande et description
1

SELECT VERSION( )

Chaîne de version du serveur

2

SELECT DATABASE( )

Nom de la base de données actuelle (vide si aucun)

3

SELECT USER( )

Nom d'utilisateur actuel

4

SHOW STATUS

Indicateurs d'état du serveur

5

SHOW VARIABLES

Variables de configuration du serveur