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"); } }