As funções definidas pelo usuário têm seu próprio escopo de variável no PHP. Você precisa passar
$mysqli para a função como um parâmetro, ou inicie a função com global $mysqli . Este problema exato é dado como um exemplo no Escopo variável página:
<?php
$a = 1; /* global scope */
function test()
{
echo $a; /* reference to local scope variable */
}
test();
?>