}
}
+ private function fixCharset($action)
+ {
+ if (!is_string($action)) {
+ return $action;
+ } else {
+ return is_utf8($action) ? $action : utf8_encode($action);
+ }
+ }
+
private function add(array &$entry, $sizef = 'rows', $timef = 'exectime', $errorf = 'error')
{
$trace = array();
- $trace['action'] = $entry['action'];
+ $trace['action'] = $this->fixCharset($entry['action']);
unset($entry['action']);
$trace['exectime'] = @$entry[$timef];
$this->totaltime += $trace['exectime'];
unset($entry[$timef]);
$trace['rows'] = @$entry[$sizef];
unset($entry[$sizef]);
- $trace['error'] = @$entry[$errorf];
+ $trace['error'] = $this->fixCharset(@$entry[$errorf]);
unset($entry[$errorf]);
if ($trace['error']) {
$this->error = true;
}
- $trace['data'] = array($entry);
+ $trace['data'] = array($this->fixCharset($entry));
$this->traces[] =& $trace;
}
public function newEvent($action, $rows = 0, $error = null, array $userdata = array())
{
- $trace = array('action' => $action, 'time' => 0);
+ $trace = array('action' => $this->fixCharset($action), 'time' => 0);
$this->traces[] =& $trace;
$this->update($rows, $error, $userdata);
}
public function start($action)
{
- $trace = array('action' => $action, 'starttime' => microtime(true));
- $this->traces[] =& $trace;
+ $this->traces[] = array('action' => $this->fixCharset($action), 'starttime' => microtime(true));;
}
public function stop($rows = 0, $error = null, array $userdata = array())
return;
}
$trace =& $this->traces[count($this->traces) - 1];
- $trace['time'] = $time - $trace['starttime'];
+ $trace['exectime'] = $time - $trace['starttime'];
unset($trace['starttime']);
- $this->totaltime += $trace['time'];
+ $this->totaltime += $trace['exectime'];
$this->update($rows, $error, $userdata);
}
{
$trace =& $this->traces[count($this->traces) - 1];
$trace['rows'] = $rows;
- $trace['error'] = $error;
+ $trace['error'] = $this->fixCharset($error);
+ array_walk_recursive($userdata, array($this, 'fixCharset'));
$trace['data'] = $userdata;
if ($trace['error']) {
$this->error = true;