Получение и использование метаданных MySQLi
Есть три информации, которые вы хотели бы получить от MySQLi.
Information about the result of queries - Сюда входит количество записей, на которые влияет любой оператор SELECT, UPDATE или DELETE.
Information about tables and databases - Сюда входит информация, относящаяся к структуре таблиц и баз данных.
Information about the MySQLi server - Сюда входит текущий статус сервера базы данных, номер версии и т. Д.
Получить всю эту информацию в командной строке mysqli очень легко, но при использовании API PERL или PHP нам нужно явно вызывать различные API, чтобы получить всю эту информацию. Следующий раздел покажет вам, как получить эту информацию.
Получение количества строк, затронутых запросом
Пример PERL
В сценариях DBI количество затронутых строк возвращается функцией do () или execute (), в зависимости от того, как вы выполняете запрос -
# 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
В PHP вызовите функцию mysqli_affected_rows (), чтобы узнать, сколько строк изменилось в запросе -
$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");
Листинговые таблицы и базы данных
Это очень легко перечислить все базы данных и таблицы, доступные на сервере баз данных. Ваш результат может быть нулевым, если у вас нет достаточных привилегий.
Помимо метода, который я упомянул ниже, вы можете использовать запросы SHOW TABLES или SHOW DATABASES для получения списка таблиц или баз данных на PHP или PERL.
Пример PERL
# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
print "Table Name $table\n";
}
Пример 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();
?>
Получение метаданных сервера
В MySQL есть следующие команды, которые могут быть выполнены либо в командной строке mysql, либо с использованием любого скрипта, такого как PHP, для получения различной важной информации о сервере базы данных.
Sr. No. | Команда и описание |
---|---|
1 |
SELECT VERSION( ) Строка версии сервера |
2 | SELECT DATABASE( ) Имя текущей базы данных (пусто, если нет) |
3 | SELECT USER( ) Текущее имя пользователя |
4 | SHOW STATUS Индикаторы состояния сервера |
5 | SHOW VARIABLES Переменные конфигурации сервера |