Obtention et utilisation des métadonnées MySQLi

Il y a trois informations que vous aimeriez avoir de MySQLi.

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

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

  • Information about the MySQLi server - Cela inclut l'état actuel 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 mysqli, mais tout en utilisant PERL ou des API PHP, nous devons appeler explicitement diverses API pour obtenir toutes ces informations. La section suivante vous montrera comment obtenir ces informations.

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

Exemple PERL

Dans les scripts DBI, le nombre de lignes affectées est renvoyé par do () ou par execute (), 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 la fonction mysqli_affected_rows () pour savoir combien de lignes une requête a changé -

$result_id = mysqli_query ($query, $conn_id);
# report 0 rows if the query failed
$count = ($result_id ? mysqli_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 tables disponibles avec le serveur de base de données. Votre résultat peut être nul si vous ne disposez pas de privilèges suffisants.

Outre la méthode que j'ai mentionnée ci-dessous, vous pouvez utiliser les requêtes SHOW TABLES ou SHOW DATABASES pour obtenir la liste des tables ou des 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
   $servername = "localhost:3306";
   $username = "root";
   $password = "";
   $dbname = "TUTORIALS";
   $conn = new mysqli($servername, $username, $password, $dbname);
   
   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   } 
   echo"Database connected";
   $sql="SHOW DATABASES";
   
   if (!($result = mysqli_query($conn,$sql))) {
      printf("Error: %s\n", mysqli_error($conn));
   }
   while( $row = mysqli_fetch_row( $result ) ){
      if (($row[0]!="information_schema") && ($row[0]!="mysql")) {
         echo $row[0]."\r\n";
      }
   }
   $conn->close();
?>

Obtention des métadonnées du serveur

Il existe des commandes suivantes 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