function performDelete()
{
    validateUser();
    withStatement("DELETE FROM DATA WHERE id=?", function ($statement) {
        $id = getParameter(PARAMETER_ID, PARAMETER_REQUIRED);
        $statement->bind_param("s", $id);
        executeStatement($statement);
    });
}
function newLogin()
{
    withStatement("INSERT INTO SESSION (SESSION_ID,CREATED) VALUES (?,NOW())", function ($statement) {
        $sessionId = generateSessionId();
        $statement->bind_param("s", $sessionId);
        executeStatement($statement);
        $baseUrl = getBaseUrl();
        $loginEmail = emailPrefixToAddress(LOGIN_EMAIL_PREFIX);
        sendEmail(emailPrefixToAddress(LOGIN_EMAIL_PREFIX), "Innlogging", "\n\nLogg inn via denne linken:\n{$baseUrl}/php/login.php?sessionId={$sessionId}");
        echo "{\"email\":\"{$loginEmail}\"}";
    });
}
    return $_FILES['file']['type'];
}
function getName()
{
    return $_FILES['file']['name'];
}
$performPost = function () {
    validateUser();
    $id = getParameter(PARAMETER_ID, PARAMETER_REQUIRED);
    $dataType = getParameter(PARAMETER_DATA_TYPE, PARAMETER_REQUIRED);
    $contentType = getContentType();
    $data = getData();
    $name = getName();
    $insert = withStatement("SELECT id FROM DATA WHERE id=?", function ($statement) use($id) {
        $statement->bind_param("s", $id);
        return countRows($statement) == 0;
    });
    if ($insert) {
        withStatement("INSERT INTO DATA(id,dataType,contentType,data, name) VALUES(?,?,?,?,?)", function ($statement) use($id, $dataType, $contentType, $data, $name) {
            $statement->bind_param("sssss", $id, $dataType, $contentType, $data, $name);
            executeStatement($statement);
        });
    } else {
        withStatement("UPDATE DATA SET data=?,dataType=?,contentType=?,name=? WHERE id=?", function ($statement) use($id, $dataType, $contentType, $data, $name) {
            $statement->bind_param("sssss", $data, $dataType, $contentType, $name, $id);
            executeStatement($statement);
        });
    }
};
validateUser();
handleRequest(array("POST" => $performPost));
<?php

include "util/all.php";
$performGet = function () {
    withStatement("SELECT name, contentType, data FROM DATA WHERE ID=?", function ($statement) {
        $id = getParameter(PARAMETER_ID, PARAMETER_REQUIRED);
        $statement->bind_param("s", $id);
        executeStatement($statement);
        $result = $statement->get_result();
        list($name, $type, $data) = $result->fetch_array();
        $name = $name ? $name : "file";
        if ($data) {
            header("Content-type: {$type}");
            header("Content-Disposition: attachment; filename=\"{$name}\"");
            echo $data;
        } else {
            setStatus(404, "Not Found");
        }
    });
};
handleRequest(array("GET" => $performGet));