static function updateMeasurement($measurementid, $measurement)
 {
     if (!is_subclass_of($measurement, "Measurement")) {
         return "Error, received object other than Measurement subclass";
     }
     $dbMeasurement = apiDB::getMeasurement($measurementid, get_class($measurement));
     if (empty($dbMeasurement->id)) {
         return "Error, Invalid Measurement ID for Update";
     }
     $conxn = apiDB::getConnection();
     $updatestring = " set ";
     $updatestring .= $measurement->columnName() . " = " . (empty($measurement->reading) ? $measurement->columnName() : $measurement->reading);
     $updatestring .= ", ";
     $updatestring .= "fromdate = " . (empty($measurement->fromdate) ? "fromdate" : "'" . $measurement->fromdate . "'");
     $updatestring .= ", ";
     $updatestring .= "todate = " . (empty($measurement->todate) ? "todate" : "'" . $measurement->todate . "'");
     $updatestring .= ", ";
     $updatestring .= "locationid = " . (empty($measurement->locationid) ? "locationid" : $measurement->locationid);
     $updatestring .= ", ";
     $updatestring .= "note = " . (empty($measurement->note) ? "note" : "'" . $measurement->note . "'");
     $sql = "UPDATE " . $measurement->tableName() . " " . $updatestring . " WHERE id = " . $measurementid;
     $result = pg_query($conxn, $sql);
     if ($result) {
         $rows = pg_affected_rows($result);
         return $rows . " " . $measurement->columnName() . " measurement(s) updated";
     } else {
         return "Error with " . $measurement->columnName() . " measurement update query : " . pg_last_error($conxn);
     }
 }
 public function getInstanceDetails($id)
 {
     $measurement = apiDB::getMeasurement($id, get_class($this));
     if (empty($measurement->id)) {
         return self::NO_SUCH_ID;
     }
     $user = apiDB::getUserByLocationId($measurement->locationid);
     if ($_SERVER['PHP_AUTH_USER'] != $user->email && $this->access <= 1) {
         return self::ACCESS_DENIED;
     }
     $this->id = $measurement->id;
     $this->userid = $measurement->userid;
     $this->locationid = $measurement->locationid;
     $this->reading = $measurement->reading;
     $this->fromdate = $measurement->fromdate;
     $this->todate = $measurement->todate;
     $this->note = $measurement->note;
     // 	Preserving $this->access however, to retain admin rights.
     return self::SETUP_OK;
 }