位置:首页 > 数据库 > 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 服务器配置变量