Проблема в области видимости - переменная
$mysqli
недоступна в функции
fakePayout()
. Решается одним из способов:
1. Явной передачей переменной внутрь функции
function fakePayout($mysqli, ...) {
2. Корректным доступом к данной переменной, поместив ее в свойство класса, содержащего функцию
fakePayout()
:
class SomeClass
{
private $mysqli;
public function __construct(DataBase $mysqli)
{
$this->mysqli = $mysqli;
}
public function fakePayout($user, $amount, $time)
{
// Теперь можно использовать
$this->mysqli->query()
}
}
3. Вариации #2 с dependency injection контейнерами, фасадами и прочее.
ЗЫ: Можно еще внутри самой функции создавать соединение, или хранить его в глобальной переменной / синглтоне - но это уже совсем дичь.