function add_api_key($link, $uid, $keyID, $vCode, $name, $notes = "")
{
    $apikey = make_short_key($link, $keyID, $vCode, $uid);
    $ID = check_saved_key($link, $apikey, $uid);
    if ($ID) {
        return $ID . "<321>Api Code Already added";
    }
    if (!$name) {
        $name = "No Name Set";
    }
    $name = mysql_real_escape_string($name, $link);
    $keyInfo = cache_api_retrieve($link, "/account/APIKeyInfo.xml.aspx", array("keyID" => $keyID, "vCode" => $vCode), 5 * 60)->value;
    echo $keyInfo->error;
    if ($keyInfo->error) {
        if ($keyInfo->error == 222) {
            return "0<321>Api Key expired";
        } else {
            if ($keyInfo->error == 203) {
                return "0<321>Api vCode or Id Incorrect";
            } else {
                return "0<321>Unable to load API. Verify the key is correct and not expired.";
            }
        }
        return false;
    }
    $type = (string) $keyInfo->result->key["type"];
    $notes = mysql_real_escape_string($notes, $link);
    foreach ($keyInfo->result->key->rowset->row as $char) {
        if (isset($char["characterName"])) {
            if (isset($characters)) {
                $characters .= "<br/>" . $char["characterName"] . "," . $char["characterId"];
            } else {
                $characters = $char["characterName"] . "," . $char["characterId"];
            }
        }
    }
    $keyID = mysql_real_escape_string($apikey, $link);
    $sql = "INSERT INTO " . DB_PREFIX . "keyInformation (apiKey,userID,keyName,characters,type,notes) VALUES ('{$keyID}','{$uid}','{$name}','{$characters}','{$type}','{$notes}')";
    $result = mysql_query($sql, $link);
    if (!$result) {
        echo "QUERY: '{$sql}'\n\n" . mysql_error() . "\n\nBacktrace:\n";
        debug_print_backtrace();
        exit;
    }
    if (mysql_affected_rows($link)) {
        return mysql_insert_id($link) . "<321>Api Key successfully added";
    }
}
function add_api_key($Db, $uid, $keyID, $vCode, $name, $notes = "")
{
    $apikey = make_short_key($Db, $keyID, $vCode, $uid);
    $ID = check_saved_key($apikey, $uid);
    if ($ID) {
        return ["result" => "failure", "id" => $ID, "response" => "Api Code Already added"];
    }
    if (!$name) {
        $name = "No Name Set";
    }
    $keyInfo = cache_api_retrieve($Db, "/account/APIKeyInfo.xml.aspx", array("keyID" => $keyID, "vCode" => $vCode), 5 * 60)->value;
    echo $keyInfo->error;
    if ($keyInfo->error) {
        if ($keyInfo->error == 222) {
            return ["result" => "failure", "response" => "Api Key expired"];
        } else {
            if ($keyInfo->error == 203) {
                return ["result" => "failure", "response" => "Api vCode or Id Incorrect"];
            } else {
                return ["result" => "failure", "response" => "Unable to load API. Verify the key is correct and not expired."];
            }
        }
        return false;
    }
    $type = (string) $keyInfo->result->key["type"];
    foreach ($keyInfo->result->key->rowset->row as $char) {
        if (isset($char["characterName"])) {
            if (isset($characters)) {
                $characters .= "<br/>" . $char["characterName"] . "," . $char["characterId"];
            } else {
                $characters = $char["characterName"] . "," . $char["characterId"];
            }
        }
    }
    $result = $Db->insert("keyInformation", ['apiKey' => $apikey, 'userID' => $uid, 'keyName' => $name, 'characters' => $characters, 'type' => $type, 'notes' => $notes]);
    if (!$result) {
        return false;
    } else {
        return ["id" => $Db->lastid, "response" => "Api Key successfully added"];
    }
}