Ottenere e utilizzare i metadati di MySQLi
Ci sono tre informazioni che vorresti avere da MySQLi.
Information about the result of queries - Questo include il numero di record interessati da qualsiasi istruzione SELECT, UPDATE o DELETE.
Information about tables and databases - Ciò include le informazioni relative alla struttura di tabelle e database.
Information about the MySQLi server - Ciò include lo stato corrente del server del database, il numero di versione ecc.
È molto facile ottenere tutte queste informazioni al prompt di mysqli, ma mentre si utilizzano API PERL o PHP, è necessario chiamare esplicitamente varie API per ottenere tutte queste informazioni. La sezione seguente ti mostrerà come ottenere queste informazioni.
Ottenere il numero di righe interessate da una query
Esempio PERL
Negli script DBI, il conteggio delle righe interessate viene restituito da do () o da execute (), 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 la funzione mysqli_affected_rows () per scoprire quante righe è stata modificata una query -
$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");
Elenco di tabelle e database
È molto facile elencare tutti i database e le tabelle disponibili con il server di database. Il risultato potrebbe essere nullo se non si dispone di privilegi sufficienti.
Oltre al metodo che ho menzionato di seguito, puoi usare le query SHOW TABLES o SHOW DATABASES per ottenere un 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
$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();
?>
Recupero dei metadati del server
Ci sono i seguenti comandi in MySQL che possono essere eseguiti al prompt di mysql o utilizzando qualsiasi script come PHP per ottenere varie informazioni importanti sul server di 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 |