Просмотр кода
Название: Sample DB Singleton
Описание: Выше все
Добавил:
mrcatoff
Дата: 9 июля 2018, в 1:38
Комментарии (1)
Описание: Выше все
<?php /** * User: MrCatOff * E-Mail: mr.alex.danilov@gmail.com * File: DB.php * Copyright 2018 MrCatOff - All rights reserved */ class DB { private static $_instance = null; private $connection = []; private $parent; private function __construct () { return false; } private function __clone () { return false; } private function __wakeup () { return false; } public static function getInstance() { if (self::$_instance === null) { self::$_instance = new self(); } return self::$_instance; } public function connect($name, $value) { // TODO: Implement __set() method. $this->connection[$name] = new PDO( 'mysql:host=' . $value['DB_HOST'] . ';dbname=' . $value['DB_NAME'], $value['DB_USER'], $value['DB_PASS'], [ PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] ); } public function set($name) { if (array_key_exists($name, $this->connection)) { $this->parent = $name; } } public function get() { if (array_key_exists($this->parent, $this->connection)) { return $this->connection[$this->parent]; } } public function prepare($sql, $execute) { $temp = $this->connection[$this->parent]->prepare("$sql"); foreach ($execute as $item) { $temp->bindValue(':' . $item[0], $item[1], $item[2]); } $temp->execute(); return $temp; } } ?> Пример Singleton Connection БД; Создание соединения: DB::getInstance()->connect('core', ['DB_HOST' => '', 'DB_NAME' => '', 'DB_USER' => 'root', 'DB_PASS' => '']); core - Имя для последующего выбора соединения, для каждого соединения свое имя =) Установка соединения на для текущего выполнения: DB::getInstance()->set('core'); Подготовка запроса: $cities = DB::getInstance()->prepare("SELECT * FROM `cities` WHERE `id` = :id", [['id', 1, PDO::PARAM_INT]]); $cities = $cities->fetch(); Получить последний ИД внесенный в БД DB::getInstance()->get()->lastinsertid()
Добавил:

Адм
Дата: 9 июля 2018, в 1:38
