MySQL duomenų bazėKaip peržiūrėti būsenos ir versijos numerio duomenų lentelės struktūros informaciją?

MySQL metaduomenys

Galbūt norėsite sužinoti šias tris informacijos apie MySQL dalis:

  • Užklausos rezultatų informacija: Įrašų, kuriuos paveikė sakinys SELECT, UPDATE arba DELETE, skaičius.
  • Duomenų bazės ir duomenų lentelės informacija: Sudėtyje yra duomenų bazių ir duomenų lentelių struktūrinė informacija.
  • MySQL serverio informacija: Nurodoma dabartinė duomenų bazės serverio būsena, versijos numeris ir kt.

MySQL komandų eilutėje galime lengvai gauti aukščiau pateiktą serverio informaciją. Bet jei naudojate scenarijų kalbą, pvz., Perl arba PHP, norėdami ją gauti, turite iškviesti konkrečią sąsajos funkciją. Toliau mes su ja išsamiai supažindinsime.


Gaukite įrašų, kuriuos paveikė užklausos sakinys, skaičių

PERL egzempliorius

DBI scenarijuje įrašų, kuriuos paveikė sakinys, skaičius grąžinamas naudojant funkciją do() arba 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 pavyzdys

PHP galite naudoti funkciją mysqli_affected_rows() norėdami gauti įrašų, kuriuos paveikė užklausos sakinys, skaičių.

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

Duomenų bazių ir duomenų lentelių sąrašas

MySQL serveryje galite lengvai gauti duomenų bazių ir lentelių sąrašą. Jei neturite pakankamai teisių, rezultatas bus nulinis.
Taip pat galite naudoti teiginį SHOW TABLES arba SHOW DATABASES, kad gautumėte duomenų bazių ir duomenų lentelių sąrašą.

PERL egzempliorius

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

PHP pavyzdys

Šis pavyzdys pateikia visas MySQL serverio duomenų bazes:

Peržiūrėkite visas duomenų bazes

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

Gaukite serverio metaduomenis

Šie komandų sakiniai gali būti naudojami MySQL komandų eilutėje arba scenarijuose, pvz., PHP scenarijuose.

komandąapibūdinimas
PASIRINKTI VERSIJA ( )Informacija apie serverio versiją
PASIRINKTI DUOMENŲ BAZĘ ( )Dabartinės duomenų bazės pavadinimas (arba grąžinkite tuščią)
PASIRINKTI VARTOTOJĄ ( )Dabartinis vartotojo vardas
RODYTI BŪSĘServerio būsena
RODYTI KINTAMUSServerio konfigūracijos kintamieji