Reputation: 13812
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
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
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