您希望从MySQL获得三种信息。

  • 有关查询输出的信息          - 包括受任何SELECT,UPDATE或DELETE语句影响的记录数。

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

  • 有关MySQL服务器的信息 - 其中包括数据库服务器的状态,版本号等。

在MySQL提示符下很容易获得所有这些信息,但是在使用PERL或PHP API时,无涯教程需要显式调用各种AP​​I以获得所有这些信息。

获取查询影响的行数

现在让无涯教程看看如何获​​取此信息。

PERL示例

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

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

# Method 2
# 使用prepare()加上execute()执行查询
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d rows were affected\n", (defined ($count) ? $count : 0);

PHP示例

在PHP中,调用 mysqli_affected_rows()函数以查找查询更改了多少行。

$result_id = mysqli_query ($conn_id,$sql);
# 如果查询失败,报告 0 行
$count = ($result_id ? mysqli_affected_rows ($conn_id) : 0);
print ("$count rows were affected\n");

列出表和数据库

列出数据库服务器可用的所有数据库和表非常容易,如果您没有足够的特权,则输出可能为 null 。

除了下面的代码块中显示的方法之外,您还可以使用 SHOW TABLES 或 SHOW DATABASES 查询来获取PHP或PERL中的表或数据库列表。 。

PERL示例

# 获取当前数据库中所有可用的表。
my @tables = $dbh->tables ( );

foreach $table (@tables ){
   print "Table Name $table\n";
}

PHP示例

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

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

获取服务器元数据

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

Sr.No. Command & 描述
1

SELECT VERSION()

服务器版本字符串

2

SELECT DATABASE()

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

3

SELECT USER()

当前用户名

4

SHOW STATUS

服务器状态指示灯

5

SHOW VARIABLES

服务器配置变量

参考链接

https://www.learnfk.com/mysql/mysql-database-info.html