MySQL 数据库信息

  • 获取和使用MySQL元数据

    您希望从MySQL获得三种信息。
    • 有关查询结果的信息 - 这包括受任何SELECTUPDATEDELETE语句影响的记录数。
    • 有关表和数据库的信息 - 这包括与表和数据库的结构有关的信息。
    • 有关MySQL服务器的信息 - 这包括数据库服务器的状态,版本号等。
    在MySQL提示符下很容易获得所有这些信息,但是在使用PERLPHP API时,我们需要显式调用各种AP​​I以获得所有这些信息。
  • 获取查询影响的行数

    现在让我们看看如何获​​取此信息。
    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中,调用mysqli_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 TABLESSHOW 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", "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 . "
    ";
       }
       mysql_close($con);
    ?>
  • 获取服务器元数据

    MySQL中有一些重要的命令,可以在MySQL提示符下执行,也可以使用任何脚本(如PHP)执行以获取有关数据库服务器的各种重要信息。
    命令 描述
    SELECT VERSION( ) 服务器版本字符串
    SELECT DATABASE( ) 当前数据库名称(如果没有则为空)
    SELECT USER( ) 当前用户名
    SHOW STATUS 服务器状态指示灯
    SHOW VARIABLES 服务器配置变量