• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mysql_stat()

    (PHP 4 >= 4.3.0, PHP 5)

    取得当前系统状态

    说明

    mysql_stat([resource $link_identifier]): string

    mysql_stat()返回当前服务器状态。

    Note:

    mysql_stat()目前只返回 uptime,threads,queries,open tables,flush tables 和 queries per second。要得到其它状态变量的完整列表,只能使用 SQL 命令 SHOW STATUS。

    Example #1 mysql_stat()例子

    <?php
    $link = mysql_connect('localhost', "mysql_user", "mysql_password");
    $status = explode('  ', mysql_stat($link));
    print_r($status);
    ?>
    

    以上例子将产生如下输出:

    Array
    (
        [0] => Uptime: 5380
        [1] => Threads: 2
        [2] => Questions: 1321299
        [3] => Slow queries: 0
        [4] => Opens: 26
        [5] => Flush tables: 1
        [6] => Open tables: 17
        [7] => Queries per second avg: 245.595
    )
    
    <?php
    // function that return stat elements into array
    function mysql_stat_array($A=null) {
      $status = explode(' ', mysql_stat());
      foreach($status as $k=>$v) { $v=explode(':',$v,2); $status[$v[0]]=$v[1]; }
      return (isset($status[$A])?$status[$A]:$status);
    }
    /*
    example return:
    Array ( [0] => Uptime: 385815 [1] => Threads: 1 [2] => Questions: 3515 [3] => Slow queries: 0 [4] => Opens: 32 [5] => Flush tables: 1 [6] => Open tables: 8 [7] => Queries per second avg: 0.009 [Uptime] => Array ( [0] => Uptime [1] => 385815 ) [Threads] => Array ( [0] => Threads [1] => 1 ) [Questions] => Array ( [0] => Questions [1] => 3515 ) [Slow queries] => Array ( [0] => Slow queries [1] => 0 ) [Opens] => Array ( [0] => Opens [1] => 32 ) [Flush tables] => Array ( [0] => Flush tables [1] => 1 ) [Open tables] => Array ( [0] => Open tables [1] => 8 ) [Queries per second avg] => Array ( [0] => Queries per second avg [1] => 0.009 ) )
    */
    ?>
    
    The following script can be used to clearly print out the results of mysql_stat().
    <?php
      mysql_connect("localhost", "username", "password");
      $array = explode(" ", mysql_stat());
      foreach ($array as $value){
        echo $value . "<br />";
      }
    ?>
    Outputs something similar to:
    Uptime: 698
    Threads: 1
    Questions: 4
    Slow queries: 0
    Opens: 19
    Flush tables: 1
    Open tables: 12
    Queries per second avg: 0.5
    if you need the complete status as outputted by the "show status" command. Try this function.
    <?
    function mysql_status($db=NULL) {
    if(!mysql_ping($db))
    $db=mysql_connect("localhost","user","password");
    $res=mysql_query("show status",$db);
    while (list($key,$value)=mysql_fetch_array($res))
    $sql[$key]=$value;
    return $sql;
    }
    ?>