[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: наследование или как то так
r3al
Привет, я не знаю как точно обозвать тему, т.к. я не сильно разбираюсь в определениях.. Но кого это волнует?)) Ребят, объясните пожалуйста как мне используя существующий класс подключения к базе данных пользоваться им в других классах? На примере пожалуйста объясните.. Ниже код, все для примера, класс MySQL у меня работает так как и написан, класс Member ничего не значит. Как сделать что бы работал код ниже? Как мне присваивать класс Member, что бы одновременно с этим шло подключение к БД и я мог в последствии в коде общаться с базой $member->query("some sql query here"); просто ООП мне никак не дается, а повторения в коде уже надоели, и хоть как то классами призвано оптимизировать, все стало на начальном коннекте к БД.


<?php

class
Member {

private $member_id;

function __construct()
{
$this->member_id = ( !isset($_COOKIE['member_id']) || !is_numeric($_COOKIE['member_id'] ) ? 0 : intval($_COOKIE['member_id']);
}


function getMemeber()
{
$reply = false;
$query = $db->query("SELECT 1 FROM `members` WHERE `id` = '{$this->member_id}'");

if ( $db->num_rows($query) == 1 ) {
$reply = true;
}

return $reply;
}
}



class MySQL {
private $db_host = '';
private $db_name = '';
private $db_user = '';
private $db_pass = '';
private $collate = '';
private $count_query = 0;

function __construct( $db_name, $db_host, $db_user, $db_pass, $collate = 'utf8' ) {
$this->db_name = $db_name;
$this->db_host = !empty( $db_host ) ? $db_host : 'localhost';
$this->db_user = !empty( $db_user ) ? $db_user : 'root';
$this->db_pass = $db_pass;
$this->collate = $collate;
$this->connect( $this->db_host, $this->db_user, $this->db_pass );
}

function connect ( $db_host, $db_user, $db_pass ) {
if ( !$connection = mysql_connect( $db_host, $db_user, $db_pass ) ) {
die ( mysql_error() );
} else {
if ( !mysql_select_db( $this->db_name ) ) {
die ( mysql_error() );
} else {
if ( !empty( $this->collate ) ) {
$this->query( 'SET NAMES ' . $this->collate );
$this->count_query--;
}
return $connection;
}
}

unset( $db_host, $db_user, $db_pass );
}

function query( $query ) {
$query_id = mysql_query( $query );
if ( !$query_id ) {
die( mysql_error() );
} else {
$this->count_query++;
return $query_id;
}
}


function safe( $query ) {
return mysql_real_escape_string( $query );
}

function num_rows( $query_id ) {
return mysql_num_rows( $query_id );
}

function count_query() {
return $this->count_query;
}

function disconnect() {
mysql_close();
}
}



$member = new Member();

if ( !$member->getMember() ) {
$content = $Templater->showLoginForm();
} else {
$content = $Template->showMemberInfo();
}

$member->disconnect();

?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.