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();
?>