$db = @new mysqli('localhost', '***', '***', '***');
Ist es Absicht, dass du die Fehlermeldungen unterdrückst?
Ich denke, dass die Variable $db [...]
$db ist genaugenommen eine Instanz der mysqli-Klasse.
Wie macht man das richtig?
Die Gültigkeit von Variablen (aka. Scope) kannst du im PHP-Manual nachschlagen.