/** * 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 []; } }