Example #1
0
    $mysql_version = mb_substr(DB::conn()->server_info, 0, 3);
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $query = $_POST['query'];
        try {
            // Contextual queries (on les exécute sans rien en faire)
            if (isset($_POST['context_queries'])) {
                DB::conn()->multi_query($_POST['context_queries']);
                // Code pour jeter les résultats à la poubelle
                do {
                    if ($res = DB::conn()->store_result()) {
                        $res->free();
                    }
                } while (DB::conn()->more_results() && DB::conn()->next_result());
            }
            // Recuperation des résultats de la requete
            $explain_results = @DB::conn()->fetchAll((strpos(strtolower($query), 'explain') === false ? 'EXPLAIN ' : '') . $_POST['query']);
            // Création de l'Explainer
            $explainer = new Explainer($_POST['query'], $mysql_version);
            if (is_array($explain_results)) {
                foreach ($explain_results as $result) {
                    // Création de la ligne et attachement à l'explainer
                    $explainer->addRow(new Row($result, $explainer->getRowsCount() > 0 ? $explainer->rows[$explainer->getRowsCount() - 1] : null, $explainer));
                }
            }
        } catch (DB_Exception $e) {
            $template->error = utf8_encode($e->getError());
        }
    }
} else {
    header('Location: config.php');
    exit;
Example #2
0
 /**
  * Row::initColumns()
  *
  * @param mixed $table
  * @return void
  */
 public function initColumns($table)
 {
     try {
         $sql_cols = DB::conn()->fetchAll("SHOW COLUMNS FROM `{$table}`");
         if (is_array($sql_cols) && count($sql_cols)) {
             $has_id_col = false;
             $has_null_col = false;
             foreach ($sql_cols as $sql_col) {
                 $tmp_col = new Column($sql_col);
                 if ($tmp_col->containsId()) {
                     $has_id_col = true;
                 }
                 if ($tmp_col->isNull()) {
                     $has_null_col = true;
                 }
                 $this->_cols[] = $tmp_col;
             }
             if (!$has_id_col) {
                 $this->_explainer->hints[] = "It seems no column is named <code>id</code> in <code>{$this->cells['table']->v}</code>, it's ok but not usual.";
             }
             /* if ($has_null_col) {
             				$this->_explainer->hints[] = "You have some nullable columns in <code>{$this->cells['table']->v}</code>, use <code>NOT NULL</code> if you can";
             			} */
         }
     } catch (DB_Exception $e) {
     }
 }
Example #3
0
function count_num($grain, $cond)
{
    $sql = "select count(distinct(ipaddr)) ip, count(distinct(name)) as uv, \n\t\t\t\tcount(t1.id) as pv from visitors v1, tracks t1  where v1.siteid=:siteid and v1.id = t1.vid ";
    if (isset($grain)) {
        $grainday = explode("--", $grain);
        if (count($grainday) > 1) {
            if ($grainday[1]) {
                $sql = $sql . "and day >= '{$grainday['0']}' and day < '{$grainday['1']}'";
            } else {
                $sql = $sql . "and day >= '{$grainday['0']}'";
            }
        } else {
            $sql = $sql . "and day = '{$grainday['0']}'";
        }
    }
    $count = DB::conn()->fetchOne($sql, MYSQLI_ASSOC, $cond);
    return $count;
}