Abrufen und Verwenden von MySQLi-Metadaten

Es gibt drei Informationen, die Sie von MySQLi erhalten möchten.

  • Information about the result of queries - Dies schließt die Anzahl der Datensätze ein, die von einer SELECT-, UPDATE- oder DELETE-Anweisung betroffen sind.

  • Information about tables and databases - Dies beinhaltet Informationen zur Struktur von Tabellen und Datenbanken.

  • Information about the MySQLi server - Dies beinhaltet den aktuellen Status des Datenbankservers, die Versionsnummer usw.

Es ist sehr einfach, alle diese Informationen an der mysqli-Eingabeaufforderung abzurufen. Bei Verwendung von PERL- oder PHP-APIs müssen jedoch verschiedene APIs explizit aufgerufen werden, um alle diese Informationen abzurufen. Der folgende Abschnitt zeigt Ihnen, wie Sie diese Informationen erhalten.

Abrufen der Anzahl der von einer Abfrage betroffenen Zeilen

PERL Beispiel

In DBI-Skripten wird die Anzahl der betroffenen Zeilen von do () oder execute () zurückgegeben, je nachdem, wie Sie die Abfrage ausführen.

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

PHP Beispiel

Rufen Sie in PHP die Funktion mysqli_affected_rows () auf, um herauszufinden, wie viele Zeilen eine Abfrage geändert hat.

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

Auflisten von Tabellen und Datenbanken

Dies ist sehr einfach, um alle mit dem Datenbankserver verfügbaren Datenbanken und Tabellen aufzulisten. Ihr Ergebnis kann null sein, wenn Sie nicht über ausreichende Berechtigungen verfügen.

Abgesehen von der unten erwähnten Methode können Sie SHOW TABLES- oder SHOW DATABASES-Abfragen verwenden, um eine Liste von Tabellen oder Datenbanken entweder in PHP oder in PERL abzurufen.

PERL Beispiel

# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
   print "Table Name $table\n";
}

PHP Beispiel

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

Server-Metadaten abrufen

In MySQL gibt es folgende Befehle, die entweder an der MySQL-Eingabeaufforderung oder mit einem beliebigen Skript wie PHP ausgeführt werden können, um verschiedene wichtige Informationen zum Datenbankserver abzurufen.

Sr.Nr. Befehl & Beschreibung
1

SELECT VERSION( )

Serverversionszeichenfolge

2

SELECT DATABASE( )

Aktueller Datenbankname (leer, wenn keiner)

3

SELECT USER( )

Aktueller Benutzername

4

SHOW STATUS

Serverstatusanzeigen

5

SHOW VARIABLES

Serverkonfigurationsvariablen