Wie zeige ich die Ausführungszeit einer MySQL-Abfrage in PHP an?

Ich arbeite an einer PHP-Anwendung, die Abfragen in einem Textfeld entgegennimmt und paginierte Ergebnisse zurückgibt. Als Teil der Anwendung möchte ich die Laufzeit der Abfrage melden.

Folgendes habe ich bisher getan.

Zunächst habe ich die Profilerstellung aktiviert, indem ich direkt in das Textfeld eingetreten bin und das Skript ausgeführt habe:

set global profiling = 1

Über das bereitgestellte Textfeld gebe ich folgende Abfrage ein:

select @@profiling

Und bekomme:

1

Schließlich führe ich die Abfrage wie folgt aus:

select * from log

Wenn ich jedoch den Befehl zum Profilieren der Abfrage ausführe:

show profiles

Ich erhalte kein Ergebnis und keinen auf der Seite angezeigten Inhalt.

Wenn nach dem Befehl "show profiles" keine Tabelle angezeigt wird, sind dann nicht genügend Berechtigungen vorhanden, oder fehlt mir ein weiterer Schritt?

Ich folgte dem Verfahren am:

Messung der tatsächlichen MySQL-Abfragezeit

Bitte beraten.

Mein PHP-Code lautet wie folgt:

<?php
    if($_POST)
    {
        $db = new PDO('mysql:host=localhost;dbname=<dbname>;charset=utf8', 'user', 'pass');
        $stmt = $db->prepare($_POST['query']);
        $stmt->execute();

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

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

        echo $errmsg;
    }  
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Log</title>
</head>
<body>
    <form method="post" id="queryform">
        <div class="label">
            <span class="label">Enter SQL Query</span>
        </div>
        <div class="input">
            <input type="text" name="query" size="150" value="<?=$_POST['query']?>" />
        </div>
    </form>
    <? if (isset($records)): ?>
    <table border="1">
        <? foreach($records as $record): ?>
            <tr>
                <? foreach($record as $colname => $value): ?>
                    <td>
                       <?=$value;?>
                    </td>
                <? endforeach; ?>    
            </tr>
        <? endforeach; ?>
    </table>

    <? endif; ?>
</body>
</html>

Jede Hilfe wäre dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage