function get_typesdescriptor($values)
{
    $typesdescriptor = '';
    foreach ($values as $key => $value) {
        $typesdescriptor .= resolveType($value);
    }
    return $typesdescriptor;
}
function resolveKeys($keys)
{
    $out = array();
    foreach ($keys as $i => $constraint) {
        $type = resolveType($constraint["value"]);
        if (gettype($constraint["value"]) == "boolean") {
            $constraint["value"] = intval($constraint["value"]);
        }
        switch ($type) {
            case 's':
                $out[] = $constraint["key"] . "='" . $constraint["value"] . "'";
                break;
            case 'i':
            case 'd':
                $out[] = $constraint["key"] . "=" . $constraint["value"];
        }
    }
    return "AND " . join(" AND ", $out);
}