/** * Prepare constructor. * * @param DB $db * @param string $query */ public function __construct(DB $db, $query) { $this->_db = $db; $this->_debug = $db->getDebugger(); parent::__construct($db->getLink(), $query); $this->prepare($query); }
/** * Log the current query via "$this->logger". * * @param string $sql sql-query * @param int $duration * @param int $results field_count | insert_id | affected_rows * @param bool $sql_error * * @return bool */ public function logQuery($sql, $duration, $results, $sql_error = false) { $logLevelUse = strtolower($this->logger_level); if ($sql_error === false && ($logLevelUse !== 'trace' && $logLevelUse !== 'debug')) { return false; } // set log-level if ($sql_error === true) { $logLevel = 'error'; } else { $logLevel = $logLevelUse; } // get extra info $infoExtra = \mysqli_info($this->_db->getLink()); if ($infoExtra) { $infoExtra = ' | info => ' . $infoExtra; } // // logging // $info = 'time => ' . round($duration, 5) . ' | results => ' . (int) $results . $infoExtra . ' | SQL => ' . UTF8::htmlentities($sql); $fileInfo = $this->getFileAndLineFromSql(); return $this->logger(array($logLevel, '<strong>' . date('d. m. Y G:i:s') . ' (' . $fileInfo['file'] . ' line: ' . $fileInfo['line'] . '):</strong> ' . $info . '<br>', 'sql')); }