Uzyskiwanie i używanie metadanych MySQLi

Są trzy informacje, które chciałbyś otrzymać z MySQLi.

  • Information about the result of queries - Obejmuje to liczbę rekordów, na które ma wpływ dowolna instrukcja SELECT, UPDATE lub DELETE.

  • Information about tables and databases - Obejmuje to informacje dotyczące struktury tabel i baz danych.

  • Information about the MySQLi server - Obejmuje aktualny stan serwera bazy danych, numer wersji itp.

Bardzo łatwo jest uzyskać wszystkie te informacje w zachęcie mysqli, ale podczas korzystania z interfejsów API PERL lub PHP musimy jawnie wywołać różne interfejsy API, aby uzyskać wszystkie te informacje. Poniższa sekcja pokaże, jak uzyskać te informacje.

Uzyskanie liczby wierszy, na które ma wpływ zapytanie

Przykład PERL

W skryptach DBI liczba wierszy, których to dotyczy, jest zwracana przez funkcję do () lub execute (), w zależności od sposobu wykonania zapytania -

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

Przykład PHP

W PHP wywołaj funkcję mysqli_affected_rows (), aby dowiedzieć się, ile wierszy zostało zmienionych w zapytaniu -

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

Tabele list i bazy danych

Bardzo łatwo jest wyświetlić listę wszystkich baz danych i tabel dostępnych na serwerze bazy danych. Twój wynik może być zerowy, jeśli nie masz wystarczających uprawnień.

Oprócz metody, którą wymieniłem poniżej, możesz użyć zapytań SHOW TABLES lub SHOW DATABASES, aby uzyskać listę tabel lub baz danych w PHP lub PERL.

Przykład PERL

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

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

Pobieranie metadanych serwera

W MySQL znajdują się następujące polecenia, które można wykonać w zachęcie mysql lub przy użyciu dowolnego skryptu, takiego jak PHP, aby uzyskać różne ważne informacje o serwerze bazy danych.

Sr.No. Polecenie i opis
1

SELECT VERSION( )

Ciąg wersji serwera

2

SELECT DATABASE( )

Nazwa aktualnej bazy danych (pusta, jeśli brak)

3

SELECT USER( )

Aktualna nazwa użytkownika

4

SHOW STATUS

Wskaźniki stanu serwera

5

SHOW VARIABLES

Zmienne konfiguracyjne serwera