示例#1
0
 /**
  * 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);
 }
示例#2
0
 /**
  * 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'));
 }