MySQL 数据库信息

2025-10-20 14:59:00

MySQL 数据库信息

获取和使用MySQL元数据

你想从MySQL中获得三种类型的信息。

查询结果信息 - 包括任何SELECT、UPDATE或DELETE语句影响的记录数。

表和数据库信息 - 包括与表和数据库结构相关的信息。

MySQL服务器信息 - 包括数据库服务器的状态、版本号等。

在MySQL提示符下很容易获取所有这些信息,但在使用PERL或PHP API时,我们需要显式调用各种API来获取所有这些信息。

获取查询影响行数

现在我们来看如何获取这些信息。

PERL示例

在DBI脚本中,受影响行数由 do() 或 execute() 命令返回,具体取决于你如何执行查询。

# Method 1

# execute query using do( )

mycount = 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);

mycount = 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");

列出表格和数据库

非常容易列出数据库服务器上可用的所有数据库和表格。如果没有足够的权限,你的结果可能为空。

除了下面代码块中显示的方法外,你也可以在PHP或PERL中使用 SHOW TABLES 或 SHOW DATABASES 查询,以获得表格或数据库的列表。

PERL示例

# Get all the tables available in current database.

my @tables = dbh->tables ( );

foreachtable (@tables ){

print "Table Name $table\n";

}

PHP示例

尝试以下示例以获取数据库信息 −

将以下示例复制并粘贴为mysql_example.php −

Getting MySQL Database Info

dbhost = 'localhost';dbuser = 'root';

dbpass = 'root@123';dbname = 'TUTORIALS';

mysqli = new mysqli(dbhost, dbuser,dbpass, dbname);tutorial_count = null;

if(mysqli->connect_errno ) {

printf("Connect failed: %s
",mysqli->connect_error);

exit();

}

printf('Connected successfully.
');

if (result = mysqli_query(mysqli, "SELECT DATABASE()")) {

row = mysqli_fetch_row(result);

printf("Default database is %s
", row[0]);

mysqli_free_result(result);

}

$mysqli->close();

?>

输出

访问部署在Apache Web服务器上的mysql_example.php文件,并验证输出结果。

Connected successfully.

Default database is tutorials

获取服务器元数据

MySQL中有一些重要的命令可以在MySQL提示符下执行,也可以使用像PHP这样的脚本来获取关于数据库服务器的各种重要信息。

序号

命令和描述

1

SELECT VERSION( ) 服务器版本字符串

2

SELECT DATABASE( ) 当前数据库名称(如果没有则为空)

3

SELECT USER( ) 当前用户名

4

SHOW STATUS 服务器状态指示器

5

SHOW VARIABLES 服务器配置变量