Mike_Ro
@Mike_Ro
$ run войтивайти

Почему не работает класс в данном варианте?

Всем привет! Пытаюсь сделать свой первый класс для работы с бд, но застрял на моменте отправки данных sql запроса в класс.
Не понимаю, как правильно отправить содержимое $value в класс так, что-бы оно там верно отработало. Пробовал с __construct, но видимо тоже что-то не так сделал.
Подскажите плиз... Спасибо!
class Data_Base
{

    private function connect()
    {
        new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
        if (mysqli_connect_errno()) {
            echo 'eror connect database';
        } else {
            return true;
        }
    }

    function query($value)
    {
            $this->connect()->query($value);
    }

}

$dataBaseClass = new Data_Base();
$value = 'SELECT * FROM users';
print_r($dataBaseClass->query($value));
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
BOOMER_74
@BOOMER_74
Web-разработчик
Так то надо хотя бы вернуть экзепляр класса mysqli:
private function connect()
    {
        $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
        if (mysqli_connect_errno()) {
            echo 'eror connect database';
            return false;
        } else {
            return $mysqli;
        }
    }

А вообще не пишите велосипед, тем более костыльный, используйте уже готовенькое.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@novrm
Не примите за неуважение, но вы движетесь не в ту сторону...

- Для начала ознакомьтесь с рекомендациями по именованию классов: 3. Namespace and Class Names

- Потом есть же ООП надстройка над mysqli - PDO? Для чего тратить свое драгоценное время на разработку велосипеда?

- Если станет мало PDO - существует надстройка над ним - Doctrine 2 Object Relational Mapper (ORM).
Ответ написан
trevoga_su
@trevoga_su
На тебе класс, готовый - database.phpinfo.su
Это раз.

Два - учиться ООП надо на более простых вещах. Что бы создавать класс для СУБД, надо хот немного знать Основы Основ (которые ты не знаешь) и в целом владеть ООП.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы