2014-11-05 2 views
0

Я играю с классами в php и просто не могу найти правильный способ сделать это.Класс для подключения к БД, как использовать

У меня есть следующий класс:

class db_connection { 
    private $dbc; 


    public function __construct() 
    { 
     $this->dbc = new mysqli(HOST_ONE, USER_ONE, PASS_ONE, DB_ONE) or die ($this->dbc->error); 

    } 

    public function getDbc() 
    { 
     return $this->dbc; 
    } 

} 

и попробуйте запустить его так:

$db = new db_connection(); 
$db->getDbc(); 

// TESTQUERY 
$abfrage = "SELECT * FROM databases"; 
$result = $db->query($abfrage); 
while ($row = $result->fetch_assoc()) { 
    echo $row['id']; 
} 

HOST_ONE и так далее установлены, я не получаю никаких сообщений об ошибках, хотя у меня есть error_reporting(E_ALL); включен

Я пробовал по-разному, но ни один из них не работает ...

Может ли кто-то подтолкнуть меня в правильном направлении к тому, как использовать этот простой класс?

ответ

2

Я думаю, вы должны использовать его как:

$db_con = new db_connection(); 
$db = $db_con->getDbc(); 

Функция getDbc() возвращает объект, который нужно. Для этого вам нужно отправить его в переменную $ db, чтобы получить ее. Выполнение метода не присваивает его значение «self» ($ db_con), но возвращает значение.

+0

Объясните, почему это должно быть так –

+0

@u_mulder Отредактировано. Надеюсь, это понятно. ;) –

1

Вы должны использовать такой код:

$dbClass = new db_connection(); 
$db = $dbClass->getDbc(); 
$db->query("SELECT * FROM databases"); 

$dbClass = new db_connection(); создает соединение и возвращает экземпляр класса db_connection в $dbClass. Теперь, когда вы подключились к базе данных, используйте $db = $dbClass->getDbc();, чтобы получить объект подключения и выполнить с ним какие-либо действия, связанные с базой данных.

Смежные вопросы