Get All-Time Number of MySQL Queries

<?php
       $handle=@mysql_connect("localhost","root","");

       if (!$handle)
       {
               die("No connection to database");
       }

       echo 'Total number of all-time mysql-queries: '.getTotalNumberOfMySQLQuerys();


       //Returns integer-value of the total number of alltime mysql-calls that have been made
       function getTotalNumberOfMySQLQuerys()
       {
               //global mysql-status containing the number of querys has been renamed in newer versions of mysql
               $mysqlVersion=getMysqlVersion();

               //contact helper-function to receive the mysql-version
               if ($mysqlVersion()>=50002)
               {
                       $sql="SHOW GLOBAL STATUS LIKE 'Questions'";
               }
               else
               {
                       $sql="SHOW STATUS LIKE 'Questions'";
               }

               $result=@mysql_query( $sql );
               $row=@mysql_fetch_array( $result );
               return $row['Value'];
       }

       //helper function is needed to detect the exact mysql-version
       function getMysqlVersion()
       {
               $sql = 'SELECT VERSION() AS versionsinfo';
               $result = @mysql_query('SELECT VERSION() AS versionsinfo');
               $version = @mysql_result( $result, 0, "versionsinfo" );
               $match = explode('.',$version);
               return sprintf('%d%02d%02d',$match[0],$match[1],intval($match[2]));
       }
?>

Because the name of the global mysql-status-variable containing the number of queries changed in later versions of mysql, a helper-function is needed to detect the exact version of mysql you're running.

Comments

  1. User Avatar
    Rich Bradshaw
    Permalink to comment#

    Looks good, but:

    $conn should be $handle.

    mysqlVersion()>=50002

    should say:

    $mysqlVersion>=50002

    Then it works fine.

    Mine is 77352281 on a pretty small site. Scary!

  2. User Avatar
    Robert Mann
    Permalink to comment#

    Rich’s fix does work is there a way to change the original error though? I cut and pasted it and had to find that error myself before I thought to look at the comments. If it could be changed in the original tutorial it could save others more time.

  3. User Avatar
    Turncoat Tony

    Hey, this was pretty cool, thanks for this. Though, it still doesn’t work without some modifications, though, with any basic understanding of PHP, this shouldn’t be an issue.

Posting Code

You may write comments in Markdown. This makes code easy to post, as you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences (```) with double new lines before and after.

Code of Conduct

Absolutely anyone is welcome to submit a comment here. But not all comments will be posted. Think of it like writing a letter to the editor. All submitted comments will be read, but not all published. Published comments will be on-topic, helpful, and further the discussion or debate.

Want to tell us something privately?

Feel free to use our contact form. That's a great place to let us know about typos or anything off-topic.

Submit a Comment

icon-closeicon-emailicon-linkicon-menuicon-searchicon-tag