MySQL可為你提供3類(lèi)有價(jià)值的信息:
通過(guò)命令行方式可以輕松獲取以上這些信息,但如果使用 PERL 或 PHP API,就需要顯式地調(diào)用各種 API 來(lái)獲取這些信息。下面將介紹具體做法。
在 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中,調(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ù)服務(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 都是適用的。
# 獲取當(dāng)前數(shù)據(jù)庫(kù)中的所有表
my @tables = $dbh->tables ( );
foreach $table (@tables ){
print "Table Name $table\n";
}
<?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);
?>
利用下面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ù)器配置變量 |