Учебники

Получение и использование метаданных MySQLi

Есть три информации, которые вы хотели бы получить от MySQLi.

  • Информация о результате запросов – включает количество записей, затронутых любым оператором SELECT, UPDATE или DELETE.

  • Информация о таблицах и базах данных – включает в себя информацию, относящуюся к структуре таблиц и баз данных.

  • Информация о сервере MySQLi – включает текущее состояние сервера базы данных, номер версии и т. Д.

Информация о результате запросов – включает количество записей, затронутых любым оператором SELECT, UPDATE или DELETE.

Информация о таблицах и базах данных – включает в себя информацию, относящуюся к структуре таблиц и баз данных.

Информация о сервере MySQLi – включает текущее состояние сервера базы данных, номер версии и т. Д.

Получить всю эту информацию очень просто по приглашению 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_affered_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, для получения различной важной информации о сервере базы данных.

ВЫБЕРИТЕ ВЕРСИЮ ()

Строка версии сервера

ВЫБЕРИТЕ БАЗУ ДАННЫХ ()

Текущее имя базы данных (пусто, если нет)

ВЫБЕРИТЕ ПОЛЬЗОВАТЕЛЯ ()

Текущее имя пользователя

ПОКАЗАТЬ СТАТУС

Индикаторы состояния сервера

ПОКАЗАТЬ ПЕРЕМЕННЫЕ

Переменные конфигурации сервера