Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Count Number of Queries Each Page Load with PDO

Tags:

php

mysql

pdo

I'm specifically looking to extend the PDO object somehow to add an internal counter every time a query is executed. I want to do this in a way were I wouldn't have to change any of my existing queries or add an extra function like this suggests.

I not that familiar with classes or the PDO class in particular, but could this be done? How would I go about this?

I'm thinking extend query and execute and increment a stored variable each time they're called.

like image 967
Steve Robbins Avatar asked Oct 12 '12 01:10

Steve Robbins


1 Answers

Extending PDO would be done like any other class. Would this suit your needs? The only other code change would be having to instantiate this class instead of the PDO class when making your initial connection.

class PDOEx extends PDO
{
    private $queryCount = 0;

    public function query($query)
    {
    // Increment the counter.
        ++$this->queryCount;

    // Run the query.
        return parent::query($query);
    }

    public function exec($statement)
    {
    // Increment the counter.
        ++$this->queryCount;

    // Execute the statement.
        return parent::exec($statement);
    }

    public function GetCount()
    {
        return $this->queryCount;
    }
}
like image 131
jimp Avatar answered Oct 20 '22 02:10

jimp