Сообщение от 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(){
}
}
?>