示例#1
0
 /**
  * sql query data
  * @param string $sql
  * @param $key
  * @param int $mode
  * @return array
  */
 public function sql($sql, $key = null, $mode = self::FETCH_TYPE_ALL)
 {
     $start = microtime(true);
     $rs = mysqli_query($this->handler, $sql);
     $time = (microtime(true) - $start) * 1000;
     if ($time > (TXConfig::getConfig('slowQuery') ?: 1000)) {
         TXLogger::addError(sprintf('Slow Query: %s [%sms]', $sql, $time), WARNING);
         TXLogger::warn(sprintf('Slow Query: %s [%sms]', $sql, $time));
     }
     if ($rs) {
         if ($mode == self::FETCH_TYPE_ALL) {
             $result = array();
             while ($row = mysqli_fetch_assoc($rs)) {
                 if ($key) {
                     $result[$row[$key]] = $row;
                 } else {
                     $result[] = $row;
                 }
             }
             return $result;
         } else {
             $result = mysqli_fetch_assoc($rs) ?: [];
         }
         return $result;
     } else {
         TXLogger::addError(sprintf("sql Error: %s [%s]", mysqli_error($this->handler), $sql));
         TXLogger::error(sprintf("%s [%s]", mysqli_error($this->handler), $sql), 'sql Error:');
         return [];
     }
 }