鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ MySQL 數(shù)據(jù)庫(kù)信息
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時(shí)間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時(shí)表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢(xún)
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類(lèi)型
MySQL 插入查詢(xún)
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報(bào)
MySQL 選擇數(shù)據(jù)庫(kù)
MySQL Where Clause
MySQL 選擇查詢(xún)
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢(xún)
MySQL 數(shù)據(jù)庫(kù)信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫(kù)
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語(yǔ)法

MySQL 數(shù)據(jù)庫(kù)信息

MySQL可為你提供3類(lèi)有價(jià)值的信息:

  • 查詢(xún)結(jié)果信息 受SELECT、UPDATE 或 DELETE 語(yǔ)句影響的記錄數(shù)量。
  • 表與數(shù)據(jù)庫(kù)的信息 表及數(shù)據(jù)庫(kù)的相關(guān)信息。
  • MySQL 服務(wù)器的信息 數(shù)據(jù)庫(kù)服務(wù)器的狀態(tài)以及數(shù)據(jù)庫(kù)版本號(hào)等信息。

通過(guò)命令行方式可以輕松獲取以上這些信息,但如果使用 PERL 或 PHP API,就需要顯式地調(diào)用各種 API 來(lái)獲取這些信息。下面將介紹具體做法。

獲取受查詢(xún)影響的行數(shù)

PERL 范例

在 DBI 腳本中,根據(jù)執(zhí)行查詢(xún)的方式,通過(guò) do() 或 execute() 返回受查詢(xún)影響的行數(shù)。

# Method 1
# execute $query using do( )
my $count = $dbh->do ($query);
# report 0 rows if an error occurred
printf "%d rows were affected\n", (defined ($count) ? $count : 0);

# Method 2
# execute query using prepare( ) plus execute( )
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d rows were affected\n", (defined ($count) ? $count : 0);

PHP 范例

在PHP中,調(diào)用 mysql_affected_rows() 函數(shù)來(lái)查找查詢(xún)所影響的行數(shù)。

$result_id = mysql_query ($query, $conn_id);
# report 0 rows if the query failed
$count = ($result_id ? mysql_affected_rows ($conn_id) : 0);
print ("$count rows were affected\n");

輸出表與數(shù)據(jù)庫(kù)的相關(guān)信息

很容易就能輸出數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)及表的相關(guān)信息,但如果沒(méi)有足夠權(quán)限,則可能所得結(jié)果為空。

除了下面將要介紹的方法之外,還可以使用 SHOW TABLES 或 SHOW DATABASES 查詢(xún)來(lái)獲取表與數(shù)據(jù)庫(kù)的相關(guān)信息,這一點(diǎn)對(duì)于 PHP 和 PERL 都是適用的。

PERL 范例

# 獲取當(dāng)前數(shù)據(jù)庫(kù)中的所有表  
my @tables = $dbh->tables ( );
foreach $table (@tables ){
   print "Table Name $table\n";
}

PHP 范例

<?php
$con = mysql_connect("localhost", "userid", "password");
if (!$con)
{
  die('Could not connect: ' . mysql_error());
}

$db_list = mysql_list_dbs($con);

while ($db = mysql_fetch_object($db_list))
{
  echo $db->Database . "<br />";
}
mysql_close($con);
?>

獲取服務(wù)器元數(shù)據(jù)

利用下面5種命令可以獲取數(shù)據(jù)庫(kù)服務(wù)器上的各種關(guān)鍵信息。它們既適用于命令行,也適用于 PHP 或 PERL 腳本。

命令 描述
SELECT VERSION() 表明服務(wù)器版本的字符串
SELECT DATABASE() 當(dāng)前數(shù)據(jù)庫(kù)名稱(chēng)(如果沒(méi)有則為空值)
SELECT USER() 當(dāng)前用戶(hù)名
SHOW STATUS 服務(wù)器狀態(tài)指示器
SHOW VARIABLES 服務(wù)器配置變量