MySQL - informacje o bazie danych
Uzyskiwanie i używanie metadanych MySQL
Istnieją trzy rodzaje informacji, które chciałbyś otrzymać z MySQL.
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 the tables and databases - Obejmuje to informacje dotyczące struktury tabel i baz danych.
Information about the MySQL server - Obejmuje to stan serwera bazy danych, numer wersji itp.
Uzyskanie wszystkich tych informacji po wyświetleniu monitu MySQL jest bardzo łatwe, ale podczas korzystania z interfejsów API PERL lub PHP musimy jawnie wywoływać różne interfejsy API, aby uzyskać wszystkie te informacje.
Uzyskanie liczby wierszy, na które ma wpływ zapytanie
Zobaczmy teraz, jak uzyskać te informacje.
Przykład PERL
W skryptach DBI liczba wierszy, których to dotyczy, jest zwracana przez do( ) lub przez execute( ) polecenie, 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 mysql_affected_rows( ) funkcję, aby dowiedzieć się, ile wierszy zostało zmienionych przez zapytanie.
$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");
Tabele list i bazy danych
Spisanie wszystkich baz danych i tabel dostępnych na serwerze bazy danych jest bardzo łatwe. Twój wynik może byćnull jeśli nie masz wystarczających uprawnień.
Oprócz metody, która jest pokazana w poniższym bloku kodu, możesz użyć SHOW TABLES lub SHOW DATABASES zapytania, 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
$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);
?>
Pobieranie metadanych serwera
W MySQL jest kilka ważnych poleceń, które można wykonać w wierszu polecenia 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 |