Как правильно написать php класс для работы с mysqli?
Все очень плохо. Изучайте PDO.
Конкретно в вашем коде первая ошибка из-за того, что переменная $sql (открытое соединение с MySQL) не попадает внутрь функции select(). Или передавайте в качестве аргумента (что неудобно из-за лишнего кода), или храните эту переменную внутри класса Database{}.
Вторая ошибка вытекает из первой, поскольку mysqli_query() не отрабатывает корректно, не возвращает результат, необходимый в mysqli_fetch_array().