public static function getQuery($query, $extends = null, $id = "") { $table = $query["TABLE"]; $query = ArrestDB::PrepareQueryGET($query, false); $result = ArrestDB::Query($query); if ($result === false || count($result) == 0) { return null; } else { if (isset($result[0])) { foreach ($result as $k => $object) { $result[$k]["__table"] = $table; } } else { $result["__table"] = $table; } } if (isset($extends) === true) { $extends = explode(",", $extends); try { $result = ArrestDB::Extend($result, $extends); } catch (Exception $e) { $result = ArrestDB::$HTTP[$e->getCode()]; $result["error"]["detail"] = $e->getMessage(); return ArrestDB::Reply($result); } } if (function_exists("ArrestDB_postProcess")) { $result = ArrestDB_postProcess('GET', $table, $id, $result); } return ArrestDB::ObfuscateId($result); }
} else { if (is_array($GLOBALS['_PUT']) === true) { $query = []; $query["TABLE"] = $table; $query["VALUES"] = []; foreach ($GLOBALS["_PUT"] as $key => $value) { $query["VALUES"][$key] = $value; } if (function_exists("ArrestDB_modify_query")) { $query = ArrestDB_modify_query("PUT", $table, $id, $query); } $data = []; foreach ($query['VALUES'] as $key => $value) { $data[$key] = sprintf('"%s" = ?', $key); } $query2 = array(sprintf('UPDATE "%s" SET %s WHERE "%s" = ?', $query["TABLE"], implode(', ', $data), ArrestDB::TableKeyName($query["TABLE"]))); $query2 = sprintf('%s;', implode(' ', $query2)); $result = ArrestDB::Query($query2, $query['VALUES'], $id); if ($result === false) { $result = ArrestDB::$HTTP[409]; } else { $result = ArrestDB::$HTTP[200]; if (function_exists(ArrestDB_postProcess)) { ArrestDB_postProcess("PUT", $table, $id); } } } } return ArrestDB::Reply($result); }); exit(ArrestDB::Reply(ArrestDB::$HTTP[400]));