public function delete()
 {
     if (!$this->_validatePermission()) {
         return false;
     }
     $rec_ID = $this->data['recID'];
     $rec_ID = intval(@$rec_ID);
     if ($rec_ID > 0) {
         $where = " where imp_id=" . $rec_ID;
     } else {
         $where = " where imp_id>0";
     }
     $mysqli = $this->system->get_mysqli();
     $res = mysql__select_all($mysqli, "select imp_id, imp_session from sysImportSessions" . $where, 1);
     if (!$res) {
         $this->system->addError(HEURIST_NOT_FOUND, "No data found. Cannot delete from import sessions table");
         return false;
     }
     //drop import data
     foreach ($res as $row) {
         foreach ($row as $id => $session) {
             $session = json_decode($session, true);
             $query = "drop table IF EXISTS " . $session['import_table'];
             if (!$mysqli->query($query)) {
                 $this->system->addError(HEURIST_DB_ERROR, 'Cannot drop import session table: ' . $session['import_table'] . ' ' . $mysqli->error);
                 return false;
             }
         }
     }
     if (!$mysqli->query("delete from sysImportSessions " . $where)) {
         $this->system->addError(HEURIST_DB_ERROR, 'Cannot delete data from list of imported files', $mysqli->error);
         return false;
     } else {
         return true;
     }
 }
Exemplo n.º 2
0
function getRecordsFromImportTable2($import_table, $id_field, $mode, $mapping, $offset, $limit = 100, $output)
{
    global $system;
    $mysqli = $system->get_mysqli();
    if ($id_field == null || $id_field == '' || $id_field == 'null' || $mode == 'all') {
        $where = '1';
        $order_field = 'imp_id';
    } else {
        if ($mode == 'insert') {
            $where = " ({$id_field}<0 OR {$id_field} IS NULL) ";
            $order_field = $id_field;
        } else {
            $where = " ({$id_field}>0) ";
            $order_field = $id_field;
        }
    }
    if (!($offset > 0)) {
        $offset = 0;
    }
    if (!is_int($limit)) {
        $limit = 100;
    }
    if ($mapping != null && !is_array($mapping)) {
        $mapping = json_decode($mapping, true);
    }
    if ($mapping && count($mapping) > 0) {
        $field_idx = array_keys($mapping);
        $sel_fields = array($order_field);
        foreach ($field_idx as $idx) {
            if ('field_' . $idx != $id_field) {
                array_push($sel_fields, 'field_' . $idx);
            }
        }
        if ($mode == 'insert' && count($sel_fields) > 1) {
            $order_field = $sel_fields[1];
        }
        $sel_fields = 'DISTINCT ' . implode(',', $sel_fields);
    } else {
        $sel_fields = '*';
    }
    $query = "SELECT {$sel_fields} FROM {$import_table} WHERE {$where} ORDER BY {$order_field}";
    if ($limit > 0) {
        $query = $query . " LIMIT {$limit} OFFSET {$offset}";
    }
    $res = mysql__select_all($mysqli, $query, 0, $output == 'csv' ? 0 : 30);
    return $res;
}