Steve Robbins
Steve Robbins

Reputation: 13812

Count Number of Queries Each Page Load with 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.

Upvotes: 7

Views: 2658

Answers (2)

jimp
jimp

Reputation: 17487

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;
    }
}

Upvotes: 8

Gajus
Gajus

Reputation: 73848

Just execute:

SHOW PROFILES;

The greatest Query ID is what you are after. This will also give you information about the last 15 (default) query execution time.

Upvotes: 0

Related Questions