English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metadados MySQL

Pode que queira saber três tipos de informações do MySQL:

  • Informações sobre os resultados da consulta:Número de registros afetados pelas instruções SELECT, UPDATE ou DELETE.

  • Informações sobre o banco de dados e as tabelas de dados:Contém informações sobre a estrutura do banco de dados e das tabelas de dados.

  • Informações do servidor MySQL:Inclui o estado atual do servidor de banco de dados, número da versão, etc.

No prompt de comando do MySQL, podemos facilmente obter as informações do servidor mencionadas acima. Mas se você usar linguagens de script como Perl ou PHP, precisará chamar funções de interface específicas para obter. vamos detalhar a seguir.

obtém o número de registros afetados pela consulta

Exemplo PERL

No script DBI, O número de registros afetados pela instrução é retornado pelas funções do( ) ou execute( ).

# Método 1
# Usa do( ) para executar $query 
my $count = $dbh->do ($query);
# Se ocorrer um erro, será output 0
printf "%d linhas afetadas\n", (defined($count) ? $count : 0);
# Método 2
# Usa prepare( ) e execute( ) para executar $query 
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d linhas afetadas\n", (defined($count) ? $count : 0);

Exemplo PHP

No PHP, você pode usar a função mysqli_affected_rows() para obter o número de registros afetados pela consulta.

$result_id = mysqli_query($conn_id, $query);
# Se a consulta falhar, retorna 
$count = ($result_id ? mysqli_affected_rows($conn_id) : 0);
print "$count linhas afetadas\n";

Lista de bancos de dados e tabelas

Você pode facilmente obter a lista de bancos de dados e tabelas no servidor MySQL. Se você não tiver permissões suficientes, o resultado retornará null.

Você também pode usar as instruções SHOW TABLES ou SHOW DATABASES para obter a lista de bancos de dados e tabelas.

Exemplo PERL

# Obtém todas as tabelas disponíveis no banco de dados atual.
my @tables = $dbh->tables ( );
foreach ($table as @tables) {
   print "nome da tabela $table\n";
}

Exemplo PHP

A seguir, um exemplo de saída que mostra todos os bancos de dados no servidor MySQL:

<?php
$dbhost = 'localhost';  // endereço do servidor do MySQL
$dbuser = 'root';            // nome de usuário do MySQL
$dbpass = ''123456';          // Nome de usuário e senha do mysql
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('Falha na conexão: ' . mysqli_error($conn));
}
// Configurar codificação, evitar a mistura de caracteres chineses
$db_list = mysqli_query($conn, 'SHOW DATABASES');
while ($db = mysqli_fetch_object($db_list))
{
  echo $db->Database . "<br />";
}
mysqli_close($conn);
?>

Obter metadados do servidor

As seguintes sentenças de comando podem ser usadas no prompt de comando do MySQL, bem como em scripts. Uso, como scripts PHP.

ComandoDescrição
SELECT VERSION( )Informações de versão do servidor
SELECT DATABASE( )Nome do banco de dados atual (ou retornar vazio)
SELECT USER( )Nome de usuário atual
SHOW STATUSEstado do servidor
SHOW VARIABLESVariáveis de configuração do servidor