MySQL databaseHvordan kontrolleres status- og versionsnummerdatatabelstrukturoplysningerne?

MySQL metadata

Du vil måske gerne vide følgende tre slags oplysninger om MySQL:

  • Forespørgselsresultatoplysninger: Antallet af poster, der er påvirket af SELECT-, UPDATE- eller DELETE-sætningen.
  • Oplysninger om databaser og datatabeller: Indeholder strukturoplysningerne for databasen og datatabellen.
  • MySQL-serveroplysninger: Indeholder databaseserverens aktuelle tilstand, versionsnummer osv.

I MySQL-kommandoprompten kan vi nemt få ovenstående serveroplysninger.Men hvis du bruger et scriptsprog som Perl eller PHP, skal du kalde en specifik grænsefladefunktion for at få det.Næste vil vi introducere i detaljer.


Få antallet af poster, der er påvirket af forespørgselssætningen

PERL-forekomst

I DBI-scripts returneres antallet af poster, der er påvirket af sætningen, af funktionerne do( ) eller execute( ):

# 方法 1
# 使用do( ) 执行  $query 
my $count = $dbh->do ($query);
# 如果发生错误会输出 0
printf "%d 条数据被影响\n", (defined ($count) ? $count : 0);
# 方法 2
# 使用prepare( ) 及 execute( ) 执行  $query 
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d 条数据被影响\n", (defined ($count) ? $count : 0);

PHP forekomst

I PHP kan du bruge funktionen mysqli_affected_rows( ) til at få antallet af poster påvirket af en forespørgsel.

$result_id = mysqli_query ($conn_id, $query);
# 如果查询失败返回 
$count = ($result_id ? mysqli_affected_rows ($conn_id) : 0);
print ("$count 条数据被影响\n");

Liste over databaser og datatabeller

Du kan nemt få en liste over databaser og tabeller i MySQL-serveren.Hvis du ikke har tilstrækkelige tilladelser, vil resultatet returnere null.
Du kan også bruge SHOW TABLES eller SHOW DATABASES-sætningen til at få en liste over databaser og datatabeller.

PERL-forekomst

# 获取当前数据库中所有可用的表。
my @tables = $dbh->tables ( );
foreach $table (@tables ){
   print "表名 $table\n";
}

PHP forekomst

Følgende eksempel udlæser alle databaser på MySQL-serveren:

Se alle databaser

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
$db_list = mysqli_query($conn, 'SHOW DATABASES');
while ($db = mysqli_fetch_object($db_list))
{
 echo $db->Database . "<br />";
}
mysqli_close($conn);
?>

Hent server metadata

Følgende kommandoudsagn kan bruges ved MySQL-kommandoprompten eller i scripts, såsom PHP-scripts.

kommando描述
VÆLG VERSION( )Serverversionsoplysninger
VÆLG DATABASE( )nuværende databasenavn (eller returner tom)
VÆLG BRUGER( )nuværende brugernavn
VIS STATUSserver status
VIS VARIABLERServerkonfigurationsvariabler