Baza podatkov MySQLKako preveriti informacije o strukturi podatkovne tabele o stanju in številki različice?

MySQL metapodatki

Morda boste želeli izvedeti naslednje tri vrste informacij o MySQL:

  • Informacije o rezultatih poizvedbe: Število zapisov, na katere vpliva stavek SELECT, UPDATE ali DELETE.
  • Informacije o zbirkah podatkov in podatkovnih tabelah: Vsebuje informacije o strukturi baze podatkov in podatkovne tabele.
  • Informacije o strežniku MySQL: Vsebuje trenutno stanje strežnika baze podatkov, številko različice itd.

V ukaznem pozivu MySQL zlahka pridobimo zgornje podatke o strežniku.Če pa uporabljate skriptni jezik, kot sta Perl ali PHP, morate poklicati določeno funkcijo vmesnika, da jo dobite.V nadaljevanju se bomo podrobno predstavili.


Pridobite število zapisov, na katere vpliva stavek poizvedbe

Primer PERL

V skriptih DBI število zapisov, na katere vpliva stavek, vrneta funkciji do() ali 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);

primerek PHP

V PHP lahko uporabite funkcijo mysqli_affected_rows(), da dobite število zapisov, na katere vpliva poizvedba.

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

Seznam baz podatkov in podatkovnih tabel

Seznam baz podatkov in tabel v strežniku MySQL lahko preprosto dobite.Če nimate zadostnih dovoljenj, bo rezultat vrnil nič.
Za pridobitev seznama baz podatkov in podatkovnih tabel lahko uporabite tudi stavek SHOW TABLES ali SHOW DATABASES.

Primer PERL

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

primerek PHP

Naslednji primer izpiše vse baze podatkov na strežniku MySQL:

Oglejte si vse zbirke podatkov

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

Pridobite metapodatke strežnika

Naslednje ukazne stavke je mogoče uporabiti v ukaznem pozivu MySQL ali v skriptih, kot so skripti PHP.

ukazopis
IZBERI RAZLIČICO ( )Informacije o različici strežnika
IZBERI BAZO PODATKOV( )trenutno ime baze podatkov (ali vrni prazno)
IZBERI UPORABNIKA( )trenutno uporabniško ime
PRIKAŽI STANJEstanje strežnika
PRIKAŽI SPREMENLJIVKEKonfiguracijske spremenljivke strežnika