位置:首頁 > 數據庫 > MySQL教學 > MySQL數據庫信息

MySQL數據庫信息

有三個信息,經常要從MySQL獲取。

  • 有關查詢結果的信息: 這包括任何SELECT,UPDATE或DELETE語句所影響的記錄數量。

  • 有關表和數據庫的信息: 這包括關於表和數據庫的結構的信息。

  • 關於MySQL服務器的信息: 這包括數據庫服務器的當前狀態,版本號等。

在mysql的提示符下,很容易得到這些信息,但如果使用Perl或PHP的API,需要顯式調用各種API來獲取這些信息。 下麵的部分將說明如何獲取這些信息。

獲取通過查詢影響的行數量

PERL 示例

在DBI腳本,受影響的行數是通過do( )或execute( )返回,這取決於如何執行查詢:

# 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中,調用mysql_affected_rows()函數,以找出查詢多少行改變:

$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");

列出表和數據庫

這很容易列出數據庫服務器中的所有可用的數據庫和表。但如果結果可能為null,那麼可能冇有足夠的權限。

除了下麵提到的方法,還可以用SHOW TABLES或SHOW DATABASES來查詢獲得表或數據庫列表,無論是在 PHP 或 Perl 中。

PERL 示例

# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
   print "Table Name $table\n";
}

PHP 示例

<?php
$con = mysql_connect("localhost", "user", "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);
?>

獲取服務器元數據

有哪些可以在mysql提示符下執行,或使用任何如PHP腳本來獲取各種有關數據庫服務器的重要信息。

命令 描述
SELECT VERSION( ) 服務器版本字符串
SELECT DATABASE( ) 當前數據庫名稱(如果冇有,則為空)
SELECT USER( ) 當前用戶名
SHOW STATUS 服務器狀態指示
SHOW VARIABLES 服務器配置變量