MySQL-databasHur kontrollerar man status- och versionsnummerdatatabellstrukturinformationen?

MySQL metadata

Du kanske vill veta följande tre typer av information om MySQL:

  • Frågeresultatinformation: Antalet poster som påverkas av SELECT-, UPDATE- eller DELETE-satsen.
  • Information om databaser och datatabeller: Innehåller strukturinformationen för databasen och datatabellen.
  • MySQL-serverinformation: Innehåller det aktuella tillståndet för databasservern, versionsnummer, etc.

I MySQL-kommandotolken kan vi enkelt få serverinformationen ovan.Men om du använder ett skriptspråk som Perl eller PHP måste du anropa en specifik gränssnittsfunktion för att få det.Härnäst kommer vi att presentera i detalj.


Få antalet poster som påverkas av frågesatsen

PERL-instans

I DBI-skript returneras antalet poster som påverkas av satsen av funktionerna 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-instans

I PHP kan du använda funktionen mysqli_affected_rows( ) för att få antalet poster som påverkas av en fråga.

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

Lista över databaser och datatabeller

Du kan enkelt få en lista över databaser och tabeller i MySQL-servern.Om du inte har tillräckliga behörigheter kommer resultatet att returnera null.
Du kan också använda SHOW TABLES eller SHOW DATABASES-satsen för att få en lista över databaser och datatabeller.

PERL-instans

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

PHP-instans

Följande exempel matar ut alla databaser på MySQL-servern:

Se alla 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);
?>

Hämta servermetadata

Följande kommandosatser kan användas vid MySQL-kommandotolken eller i skript, till exempel PHP-skript.

命令beskrivning
VÄLJ VERSION( )Serverversionsinformation
VÄLJ DATABAS( )aktuellt databasnamn (eller returnera tomt)
VÄLJ ANVÄNDARE( )nuvarande användarnamn
VISA STATUSServerstatus
VISA VARIABLERServerkonfigurationsvariabler