Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中显示MySQL查询的执行时间?_Php_Mysql_Pdo_Query Optimization - Fatal编程技术网

如何在PHP中显示MySQL查询的执行时间?

如何在PHP中显示MySQL查询的执行时间?,php,mysql,pdo,query-optimization,Php,Mysql,Pdo,Query Optimization,我正在开发一个PHP应用程序,它在文本框中接受查询并返回分页结果。作为应用程序的一部分,我想报告查询的运行时间 以下是我迄今为止所做的工作 我首先通过直接在文本框中输入并运行脚本来启用分析: set global profiling=1 使用提供的文本框输入以下查询: select@@profiling 并获得: 1 最后,我按如下方式运行查询: 从日志中选择* 但是,当我为运行命令以分析查询时: 显示配置文件 我没有收到任何结果,页面上也没有显示任何内容 由于在“show profi

我正在开发一个PHP应用程序,它在文本框中接受查询并返回分页结果。作为应用程序的一部分,我想报告查询的运行时间

以下是我迄今为止所做的工作

我首先通过直接在文本框中输入并运行脚本来启用分析:

set global profiling=1
使用提供的文本框输入以下查询:

select@@profiling
并获得:

1
最后,我按如下方式运行查询:

从日志中选择*
但是,当我为运行命令以分析查询时:

显示配置文件
我没有收到任何结果,页面上也没有显示任何内容

由于在“show profiles”命令之后没有看到任何表,这是否意味着没有足够的权限,或者我错过了另一个步骤

我遵循以下程序:

请告知

我的PHP代码如下:


日志
输入SQL查询
这个怎么样:

$start = microtime(true);
$stmt->execute();
$end = microtime(true);
echo "This query took " . ($end - $start) . " seconds.";

这很有魅力

    $db->query('set profiling=1'); //optional if profiling is already enabled
    $db->query($_POST['query']);
    $stmt = $db->query('show profiles');
    $db->query('set profiling=0'); //optional as well

    $records = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $errmsg = $stmt->errorInfo()[2]; //Output the error message 

更新(以下内容现在在我当前的设置中对innodb有效)

来自phpmyadmin的(显示配置文件)的结果

Query_ID    Duration    Query   
1           0.00010575  SELECT DATABASE()

谢谢您的回复。这是唯一可行的方法吗?我没有想到这可能是唯一可行的解决办法。感谢您的帮助。正确的信息应该是
“此查询已完成”。($end-$start)。“秒。”
@MarcioMazzucato你说得对,
microtime(true)
以秒为单位返回一个浮点值。我相应地编辑了答案。
Query_ID    Duration    Query   
1           0.00010575  SELECT DATABASE()