20250804
This commit is contained in:
52
sources/classes/tm_drivers/MSSQLTableManager.php
Normal file
52
sources/classes/tm_drivers/MSSQLTableManager.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @noinspection SqlNoDataSourceInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseHeader;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Система менеджмента таблицами базы данных MS SQL.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
final class MSSQLTableManager implements ITableManager
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function IsTableExist (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// Создаю SQL-запрос
|
||||
$sql = "SELECT CASE WHEN OBJECT_ID(:tableName, 'U') IS NOT NULL THEN 1 ELSE 0 END";
|
||||
|
||||
// Подготавливаю данные
|
||||
$stmt = $handle->prepare($sql);
|
||||
|
||||
// Выполняю запрос
|
||||
$stmt->execute(['tableName' => $tableName]);
|
||||
|
||||
// Получаю количество таблиц и вывожу true или false
|
||||
return $stmt->fetchColumn() === '1';
|
||||
}
|
||||
|
||||
public function CreateTable (PDO $handle, string $tableName, DataBaseHeader $columns): bool
|
||||
{
|
||||
// TODO: Implement CreateTable() method.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function DropTable (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// TODO: Implement DropTable() method.
|
||||
return false;
|
||||
}
|
||||
}
|
53
sources/classes/tm_drivers/MySQLTableManager.php
Normal file
53
sources/classes/tm_drivers/MySQLTableManager.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* @noinspection SqlNoDataSourceInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseHeader;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Система менеджмента таблицами базы данных MySQL.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
final class MySQLTableManager implements ITableManager
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function IsTableExist (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// Создаю SQL-запрос
|
||||
$sql = "SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = :tableName";
|
||||
|
||||
// Подготавливаю данные
|
||||
$stmt = $handle->prepare($sql);
|
||||
|
||||
// Выполняю запрос
|
||||
$stmt->execute(['tableName' => $tableName]);
|
||||
|
||||
// Получаю количество таблиц, если > 0, то вывожу true, иначе - false
|
||||
return $stmt->fetchColumn() > 0;
|
||||
}
|
||||
|
||||
public function CreateTable (PDO $handle, string $tableName, DataBaseHeader $columns): bool
|
||||
{
|
||||
// TODO: Implement CreateTable() method.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function DropTable (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// TODO: Implement DropTable() method.
|
||||
return false;
|
||||
}
|
||||
}
|
52
sources/classes/tm_drivers/OracleDBTableManager.php
Normal file
52
sources/classes/tm_drivers/OracleDBTableManager.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @noinspection SqlNoDataSourceInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseHeader;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Система менеджмента таблицами базы данных Oracle DB.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
final class OracleDBTableManager implements ITableManager
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function IsTableExist (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// Создаю SQL-запрос
|
||||
$sql = "SELECT COUNT(*) FROM USER_TABLES WHERE TABLE_NAME = UPPER(:tableName)";
|
||||
|
||||
// Подготавливаю данные
|
||||
$stmt = $handle->prepare($sql);
|
||||
|
||||
// Выполняю запрос
|
||||
$stmt->execute(['tableName' => $tableName]);
|
||||
|
||||
// Получаю количество таблиц, если >0, то вывожу true, иначе - false
|
||||
return $stmt->fetchColumn() > 0;
|
||||
}
|
||||
|
||||
public function CreateTable (PDO $handle, string $tableName, DataBaseHeader $columns): bool
|
||||
{
|
||||
// TODO: Implement CreateTable() method.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function DropTable (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// TODO: Implement DropTable() method.
|
||||
return false;
|
||||
}
|
||||
}
|
56
sources/classes/tm_drivers/PostgreSQLTableManager.php
Normal file
56
sources/classes/tm_drivers/PostgreSQLTableManager.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/**
|
||||
* @noinspection SqlNoDataSourceInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseHeader;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Система менеджмента таблицами базы данных PostgreSQL.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
final class PostgreSQLTableManager implements ITableManager
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function IsTableExist (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// Создаю SQL-запрос
|
||||
$sql = "SELECT EXISTS(
|
||||
SELECT 1
|
||||
FROM pg_tables
|
||||
WHERE schemaname = current_schema()
|
||||
AND tablename = :tableName)";
|
||||
|
||||
// Подготавливаю данные
|
||||
$stmt = $handle->prepare($sql);
|
||||
|
||||
// Выполняю запрос
|
||||
$stmt->execute(['tableName' => $tableName]);
|
||||
|
||||
// Получаю количество таблиц, если = "true", то вывожу true, иначе - false
|
||||
return $stmt->fetchColumn() === 'true';
|
||||
}
|
||||
|
||||
public function CreateTable (PDO $handle, string $tableName, DataBaseHeader $columns): bool
|
||||
{
|
||||
// TODO: Implement CreateTable() method.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function DropTable (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// TODO: Implement DropTable() method.
|
||||
return false;
|
||||
}
|
||||
}
|
52
sources/classes/tm_drivers/SQLiteTableManager.php
Normal file
52
sources/classes/tm_drivers/SQLiteTableManager.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @noinspection SqlNoDataSourceInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseHeader;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Система менеджмента таблицами базы данных SQLite.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
final class SQLiteTableManager implements ITableManager
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function IsTableExist (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// Создаю SQL-запрос
|
||||
$sql = "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=:tableName";
|
||||
|
||||
// Подготавливаю данные
|
||||
$stmt = $handle->prepare($sql);
|
||||
|
||||
// Выполняю запрос
|
||||
$stmt->execute(['tableName' => $tableName]);
|
||||
|
||||
// Получаю количество таблиц, если >0, то вывожу true, иначе - false
|
||||
return $stmt->fetchColumn() > 0;
|
||||
}
|
||||
|
||||
public function CreateTable (PDO $handle, string $tableName, DataBaseHeader $columns): bool
|
||||
{
|
||||
// TODO: Implement CreateTable() method.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function DropTable (PDO $handle, string $tableName): bool
|
||||
{
|
||||
// TODO: Implement DropTable() method.
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user