MySQL - Informazioni sul database

Ottenere e utilizzare i metadati di MySQL

Ci sono tre tipi di informazioni, che vorresti avere da MySQL.

  • Information about the result of queries - Questo include il numero di record interessati da qualsiasi istruzione SELECT, UPDATE o DELETE.

  • Information about the tables and databases - Ciò include le informazioni relative alla struttura delle tabelle e dei database.

  • Information about the MySQL server - Ciò include lo stato del server del database, il numero di versione, ecc.

È molto facile ottenere tutte queste informazioni al prompt di MySQL, ma mentre si utilizzano API PERL o PHP, è necessario chiamare esplicitamente varie API per ottenere tutte queste informazioni.

Ottenere il numero di righe interessate da una query

Vediamo ora come ottenere queste informazioni.

Esempio PERL

Negli script DBI, il conteggio delle righe interessate viene restituito da do( ) o dal execute( ) comando, a seconda di come si esegue la query.

# 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);

Esempio PHP

In PHP, invoca il mysql_affected_rows( ) funzione per scoprire quante righe è stata modificata una query.

$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");

Elenco di tabelle e database

È molto facile elencare tutti i database e le tabelle disponibili con un server di database. Il tuo risultato potrebbe esserenull se non disponi dei privilegi sufficienti.

Oltre al metodo mostrato nel seguente blocco di codice, puoi usare SHOW TABLES o SHOW DATABASES query per ottenere l'elenco di tabelle o database in PHP o in PERL.

Esempio PERL

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

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

Esempio 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);
?>

Recupero dei metadati del server

Ci sono alcuni comandi importanti in MySQL che possono essere eseguiti al prompt di MySQL o utilizzando qualsiasi script come PHP per ottenere varie informazioni importanti sul server del database.

Sr.No. Comando e descrizione
1

SELECT VERSION( )

Stringa della versione del server

2

SELECT DATABASE( )

Nome database corrente (vuoto se nessuno)

3

SELECT USER( )

Nome utente corrente

4

SHOW STATUS

Indicatori di stato del server

5

SHOW VARIABLES

Variabili di configurazione del server