Ik ben bezig met een kleine laag over de PDO class van pdo, zodat ik query tijden kan loggen.
Ik gebruik de pdo query() en execute() functies voor mijn queries. Nu loop ik echter een beetje vast op het loggen van queries met prepared statements.
de query($query) functie voert hem namelijk meteen uit, waardoor ik hem makkelijk kan loggen, maar bij de execute() gaat het iets anders:
Kan iemand mij vertellen hoe ik dit op kan vangen in mijn pdo extended class?
Ik heb namelijk geen idee hoe ik dit met die variables, en functies binnen die variables op kan lossen.
Op mijn manier geeft hij namelijk niks terug als ik een query execute() (naast het fijt dat ik de statement niet op kan slaan in de array omdat ik de statement niet kan achterhalen)
Ik gebruik de pdo query() en execute() functies voor mijn queries. Nu loop ik echter een beetje vast op het loggen van queries met prepared statements.
de query($query) functie voert hem namelijk meteen uit, waardoor ik hem makkelijk kan loggen, maar bij de execute() gaat het iets anders:
PHP:
1
2
3
4
5
| $stmt = $db->prepare("SELECT * FROM fruit WHERE soort = :soort"); $stmt->bindParam(':soort', 'appel', PDO::PARAM_STR); $stmt->execute(); |
Kan iemand mij vertellen hoe ik dit op kan vangen in mijn pdo extended class?
Ik heb namelijk geen idee hoe ik dit met die variables, en functies binnen die variables op kan lossen.
Op mijn manier geeft hij namelijk niks terug als ik een query execute() (naast het fijt dat ik de statement niet op kan slaan in de array omdat ik de statement niet kan achterhalen)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| class PDODebug extends PDO { private $logarray = array(); private function log($statement, $time, $type = 'query') { $logarray[] = 'PDODebug '.$statement.':::time:'. $time.', type:'.$type; $this->logarray = $logarray; } public function query($statement) { $time = microtime(true); $result = parent::query($statement); $time = microtime(true) - $time; $this->log($statement, $time); return $result; } public function execute() { $time = microtime(true); $result = parent::execute(); $time = microtime(true) - $time; $this->log('xx', $time, 'execute'); } public function get_log() { return $this->logarray; } } |