Exemple #1
0
 public function update($where = "", $allowed_fields = array())
 {
     if (!$this->is_ready_test()) {
         return;
     }
     //recupero le informazioni di where
     if (!empty($where)) {
         $where = " WHERE " . $where . " ";
     }
     //recupero le informazioni automaticamente
     if (!empty($allowed_fields)) {
         foreach ($this->fields as $field) {
             if ($field['field'] != "id") {
                 if (EHeaderDataParser::exists_post($field['field']) and in_array($field['field'], $allowed_fields)) {
                     $entries[] = array("field" => $field['field'], "value" => EHeaderDataParser::db_post($field['field']), "type" => $field['type']);
                 }
             }
         }
     } else {
         foreach ($this->fields as $field) {
             if ($field['field'] != "id") {
                 if (EHeaderDataParser::exists_post($field['field'])) {
                     $entries[] = array("field" => $field['field'], "value" => EHeaderDataParser::db_post($field['field']), "type" => $field['type']);
                 }
             }
         }
     }
     //costruisco la query ed eseguo se ho le informazioni in entries
     if (!empty($entries)) {
         $sql = "UPDATE " . $this->table . " SET ";
         foreach ($entries as $entry) {
             $sql = $sql . $entry['field'] . "=";
             if ($entry['type'] == "int") {
                 if (!is_numeric($entry['value'])) {
                     //data type error
                     echo "<span style=\"font-family:Arial,sans-serif\">Warning! GFX3 <span style=\"color:red\">EData Object Error</span>: wrong data passed for <i><big>`" . $field['field'] . "`</big></i> with type `INT`! freezing...</span><br>";
                     die;
                 }
                 $sql = $sql . $entry['value'] . ",";
             } else {
                 $sql = $sql . "'" . $entry['value'] . "',";
             }
         }
         $sql = rtrim($sql, ",") . " {$where}";
         if ($this->noquery == false) {
             EDatabase::q($sql);
         } else {
             echo $sql;
         }
     } else {
         //ELog::warning("EData->update called with empty entries");
     }
 }