PHP Conference Japan 2024

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat获取当前系统状态

警告

此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中移除。应改用 MySQLiPDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南。此函数的替代方法包括

描述

mysql_stat(资源 $link_identifier = NULL): 字符串

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

参数

link_identifier

MySQL 连接。如果未指定链接标识符,则假定为 mysql_connect() 打开的最后一个链接。如果找不到此类链接,它将尝试创建链接,就像 mysql_connect() 被调用且没有任何参数一样。如果未找到或建立连接,则会生成 E_WARNING 级别的错误。

返回值

返回一个字符串,其中包含正常运行时间、线程、查询、打开的表、刷新表和每秒查询数的状态。有关其他状态变量的完整列表,您必须使用 SHOW STATUS SQL 命令。如果 link_identifier 无效,则返回 null

示例

示例 #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
)

示例 #2 替代 mysql_stat() 示例

<?php
$link
= mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW STATUS', $link);
while (
$row = mysql_fetch_assoc($result)) {
echo
$row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

以上示例将输出类似以下内容

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

参见

添加注释

用户贡献的注释 3 条注释

3
billbilljr at gmail dot com
13 年前
以下脚本可用于清楚地打印出 mysql_stat() 的结果。

<?php
mysql_connect
("localhost", "username", "password");
$array = explode(" ", mysql_stat());
foreach (
$array as $value){
echo
$value . "<br />";
}
?>

输出类似以下内容

正常运行时间:698
线程:1
问题:4
慢查询:0
打开:19
刷新表:1
打开的表:12
每秒查询平均值:0.5
0
Enzo_01 at abv dot bg
16 年前
<?php
// 返回状态元素到数组的函数
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);
}
/*
示例返回值:
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 ) )
*/

?>
-1
匿名用户
19 年前
如果您需要“show status”命令输出的完整状态。请尝试此函数。
<?
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;
}
?>
To Top