Показать сообщение отдельно
  #3 (permalink)  
Старый 04.09.2014, 15:21
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Сообщение от WorM32 Посмотреть сообщение
Ну дык у вас же $_instance есть, вот через него и вызывайте методы класса.
Да не совсем в нем. Например

<?php

class DB{

    protected $mysqli;                                    // обьект работы с БД
    public $last_insert_id;                               //id последней измененной(INS/UPD/DEL) записи в БД
    public $error;

    private $host;
    private $login;
    private $pass;
    private $db_name;


    protected static $_instance;

    public function __construct(){

        /*
         * Данные для подключения к БД.
         */

        include_once('m/M_Constants.php');
        $M_Constants = Constants::Instance();



		$this->host = $M_Constants->host;
		$this->login = $M_Constants->login;
		$this->pass = $M_Constants->pass;
		$this->db_name = $M_Constants->db_name;
  	}

    private function Greate_Connect()
    {
        $this->mysqli = new mysqli($this->host, $this->login, $this->pass, $this->db_name);
        if (mysqli_connect_errno($this->mysqli))
        {
            $this->error .= "M_DB_Greate_Connect Не удалось подключиться к MySQL: " . mysqli_connect_error();
            //$this->error .= "M_DB_Greate_Connect Не удалось подключиться к MySQL: " . mysqli_connect_error();
        }
        $this->mysqli->set_charset("utf8");
    }

    public function getError() {
        return $this->error;
    }
    /**
     * Selecting from DB
     *
     * @param string $string - sql query
     *
     * @return array $data_array - array of selected data
     * @return NULL $data_array
     */
    function Select($string)
    {
        // подключение к ДБ
        $this->Greate_Connect();
        // запрос, в случае успеха true, 1
        if (!$result = $this->mysqli->query($string))
        {
            $this->error .= "M_DB_Select Неудалось выбрать из базы: %s\n" . $this->mysqli->errno . "<br/>" . $string;
            return false ;
        }else {
            while ($row = mysqli_fetch_array($result,MYSQL_ASSOC)) {
                $data_array[]=$row;
            }
            //закрытие соединения
            $this->mysqli->close();
            if(isset($data_array[1])) {
                return $data_array;
            } else {
                return $data_array[0];
            }
        }
    }

    public static function getInstance() {
        // проверяем актуальность экземпляра
        if (null === self::$_instance) {
            // создаем новый экземпляр
            self::$_instance = new self();
        }
        // возвращаем созданный или существующий экземпляр
        return self::$_instance;
    }

    // Insert в базе ,
    // return в случае успеха true or 1, false = 0, NULL
    function Insert($string)
    {
        // подключение к ДБ
        $this->Greate_Connect();
        // запрос, в случае успеха true, 1
        if (!$result = $this->mysqli->query($string))
        {
            $this->error .= "M_DB_Insert Неудалось записать в базу: %s\n" . $this->mysqli->error;
            return false ;
        }
        // запись id последней вставленной записи записи
        $this->last_insert_id = $this->mysqli->insert_id;
        //закрытие соединения
        $this->mysqli->close();
        return $result;
    }

    // Update в базе ,
    // return в случае успеха true or 1, false = 0, NULL
    function Update($string)
    {
        // подключение к ДБ
        $this->Greate_Connect();
        // запрос, в случае успеха true, 1
        if (!$result = $this->mysqli->query($string))
        {
            $this->error = "M_DB_Update Неудалось проапдейтить запись в базе: %s\n" . $this->mysqli->error;
        }
        // запись id последней обновленной записи
        $this->last_insert_id = $this->mysqli->insert_id;
        //закрытие соединения
        $this->mysqli->close();
        return $result;
    }

    // Delete в базе ,
    // return в случае успеха true or 1, false = 0, NULL
    function Delete($string)
    {
        // подключение к ДБ
        $this->Greate_Connect();
        // запрос, в случае успеха true, 1
        if (!$result = $this->mysqli->query($string))
        {
            $this->error .= "M_DB_Delete Неудалось удалить из базы: %s\n" . $this->mysqli->error;
        }
        // запись id последней удвления записи/ей
        $this->last_insert_id = $this->mysqli->insert_id;
        //закрытие соединения
        $this->mysqli->close();
        return $result;
    }

    // Возвразает id последней измененной записи
    // return int
    function LastInsertId()
    {
        return $this->last_insert_id;
    }

    private function __clone(){
    }

}
?>
Ответить с цитированием