Коммит c56046e3 создал по автору lopar's avatar lopar
Просмотр файлов

Переход на PDO для упрощения реализации подготовленных выражений....

Переход на PDO для упрощения реализации подготовленных выражений. close_page.php там не нужен потому что вызов класса ничего не запустит — просто нечего запускать.
владелец 6ac85584
<?php
require_once __DIR__ . '/../linker/close_page.php';
class Connect {
public static $link;
protected $host = 'localhost';
protected $user = 'u0643076_sneg';
protected $password = '?wZ545i9KcT3';
protected $db_name = 'u0643076_sneg';
public function __construct () {
$this->link=mysqli_connect('p:' . $this->host, $this->user, $this->password, $this->db_name ) or exit('No connection...');
$this->link->set_charset("utf8mb4");
}
function getConnection() {
return $this->link;
}
}
?>
<?php
require_once __DIR__ . '/../linker/close_page.php';
class Database
{
private const HOST = '';
private const USER = '';
private const PASS = '';
private const DB = '';
private const PORT = '';
private static ?self $link;
private PDO $db;
public function __construct()
{
$this->init();
}
//Потому что в конструкторе нельзя инициализировать классы.
//PDO упрощает подготовленные выражения.
private function init()
{
$dsn = 'mysql:dbname=' . self::DB . ';host=' . self::HOST . ';port=' . self::PORT . ';charset=utf8mb4;';
$this->db = new PDO($dsn, self::USER, self::PASS);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
// Синглетон, чтобы не плодить подключения.
public static function connect(): self
{
if (is_null(self::$link)) {
self::$link = new self();
}
return self::$link;
}
public function getConnection()
{
return $this->link;
}
//Подготовленные запросы
public function query(string $query, $values = null)
{
if (is_null($values)) {
$values = [];
} elseif (!is_array($values)) {
$values = [$values];
}
$stmt = $this->db->prepare($query);
$stmt->execute($values);
return $stmt;
}
}
\ Нет новой строки в конце файла
<?php
//Конфиг
require_once __DIR__ . '/../../conf/Class_Connect.php';
require_once __DIR__ . '/../../conf/Class_Database.php';
//Показать список каналов
......@@ -38,7 +38,7 @@ require_once __DIR__ . '/../../conf/Class_Connect.php';
}
//Коннеккт
$connection_to = new Connect();
$connection_to = new Database();
$connection_to->getConnection();
//Каналы
......
......@@ -2,7 +2,7 @@
//Дополнительно закрываем сраницу
require_once __DIR__ . '/../../linker/close_page.php';
//Коннект
require_once __DIR__ . '/../../conf/Class_Connect.php';
require_once __DIR__ . '/../../conf/Class_Database.php';
//Список каналов
require_once './Class_ListChannels.php';
//Класс вывода
......@@ -61,7 +61,7 @@ class Printing
//Коннект к базе
$connection_to = new Connect();
$connection_to = new Database();
//Новый контекст для цикла
$new_cyle = new Cycle($array_for_cycle, $mybject);
//Вывод
......
......@@ -2,9 +2,9 @@
// Константы для директорий
require_once './conf/defines.php';
//Коннект
require_once CONF . 'Class_Connect.php';
require_once CONF . 'Class_Database.php';
//Основной Коннект
$connection_to = new Connect();
$connection_to = new Database();
$connection_to->getConnection();
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать