[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с MySQL
Страницы: 1, 2
Эли4ка
Здравствуйте, дорогие формучане. Возник вопрос по работе с БД. Не хватает разумных мыслей выбрать из 2х вариантов. Первый-это сделать через singleton и подключение, безопасность, запросы, счетчики все засунуть туда. Но на сайте ирбиса увидела класс для работы с БД-там было просто подключение. Все остальное было вне класса на функциях. Лично я склоняюсь по своему неведению ко второму варианту, мне он кажется проще. Код в первом случае будет выглядеть как-то так:

class DB
{
public $time;
public $count_sql_query = 0;

static private $instance;

public static function getInstance()
{
if(empty(self::$instance))
self::$instance = new self;

return self::$instance;
}

private function __construct()
{
//подключение
}

private function __clone(){}
private function __wakeup(){}

public function __destruct(){}
public function escape(){}
..и другие функции.
}

Во втором случае(взято у Ирбиса, простите, если что не так):

class DB
{
static $link;

public static function connect()
{
if(empty(self::$link))
{
self::$link = @mysqli_connect('localhost', 'root', '', 'test')
or die('No connect');

mysqli_set_charset(self::$link, 'utf8');
}
}

}


// Запускаем соединение
DB::connect();

/**
* Функция обработки литеральных констант для SQL
*/

function escapeString($data)
{

if(is_array($data))
$data = array_map("escapeString", $data);
else
$data = mysqli_real_escape_string(DB::$link, $data);

return $data;
}
function mysqlQuery($sql, $print = false)
{

$result = mysqli_query(DB::$link, $sql); return $result;
}

Так же мне кажется, что во втором случае я из-за недостатка опыта не увидела такую же реализацию синглтона, только более простую.
P.S. знаю, что
private function __clone(){}
private function __wakeup(){}

лично мне не пригодятся в проектах на начальном этапе, поэтому их можно убрать. скорее всего. так как это показывает только мою бездумную копипасту, а не понимание, что и зачем нужно. Или я не права?
Спасибо
Быстрый ответ:

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