Учебники

MySQL — база данных

Существует три типа информации, которую вы хотели бы получить от MySQL.

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

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

  • Информация о сервере MySQL. Сюда входит состояние сервера базы данных, номер версии и т. Д.

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

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

Информация о сервере MySQL. Сюда входит состояние сервера базы данных, номер версии и т. Д.

Очень легко получить всю эту информацию в командной строке MySQL, но при использовании 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 вызовите функцию mysql_affered_rows (), чтобы узнать, сколько строк изменилось в запросе.

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

Листинг таблиц и баз данных

Очень легко перечислить все базы данных и таблицы, доступные на сервере баз данных. Ваш результат может быть нулевым, если у вас недостаточно прав.

Помимо метода, показанного в следующем блоке кода, вы можете использовать запросы 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
   $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);
?>

Получение метаданных сервера

В MySQL есть несколько важных команд, которые можно выполнить либо по приглашению MySQL, либо с помощью любого сценария, например PHP, для получения различной важной информации о сервере базы данных.

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

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

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

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

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

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

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

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

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

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