Custom MySQLi connector class for PHP
First, don't use else. Or try to avoid it. The link method can be reduced drastically by just reading the docs.

host
Can be either a host name or an IP address. Passing the NULL value or the string &quot;localhost&quot; to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

Usually, using NULL in a variable will help you achieve the default behavior of things. Take advantage of it.
/**
 * Sets and gets the link to the database based on params
 * @param string $host 
 * @param string $username 
 * @param string $password 
 * @param string $dbname 
 * @return mysqli
 */
public function link($host = null, $username = null, $password = null, $dbname = null)
{
    static::$link-&gt;real_connect($host, $username, $password, $dbname);
    return static::$link;
}

Secondly, why is $link static? You're already using the Singleton Pattern, to make the $link variable static is double redundant against the pattern.