20250802-1
This commit is contained in:
64
sources/traits/Database/DatabaseDelete.php
Normal file
64
sources/traits/Database/DatabaseDelete.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* @noinspection SqlNoDataSourceInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\traits\Database;
|
||||
|
||||
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Трейт для удаления записей в таблице базы данных.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
* @see PDO
|
||||
*/
|
||||
trait DatabaseDelete
|
||||
{
|
||||
/**
|
||||
* Удаляет строки по условию.
|
||||
*
|
||||
* @param string $table Имя таблицы.
|
||||
* @param ConditionBuilder $where Массив условий.
|
||||
*
|
||||
* @return bool Результат выполнения.
|
||||
*/
|
||||
public function Delete (string $table, ConditionBuilder $where): bool
|
||||
{
|
||||
/**
|
||||
* Получаю SQL-запрос и параметры для where.
|
||||
*
|
||||
* @var string $sql_where SQL-запрос для where.
|
||||
* @var array $params Параметры запроса.
|
||||
*/
|
||||
[$sql_where, $params] = $where->Build();
|
||||
|
||||
// Создаю запрос
|
||||
$sql = "DELETE FROM $this->DBSignOpen$table$this->DBSignClose";
|
||||
|
||||
// Если заданы where-параметры
|
||||
if ($where->Count() > 0)
|
||||
// - то добавляю их
|
||||
$sql .= " WHERE $sql_where";
|
||||
|
||||
// Выполняю запрос
|
||||
$count = $this->Execute($sql, $params);
|
||||
|
||||
// Если результат - false
|
||||
if ($count === false)
|
||||
// - то и общий результат - false
|
||||
return false;
|
||||
|
||||
// Если изменено 0 строк
|
||||
if ($count === 0)
|
||||
// - то и общий результат - false
|
||||
return false;
|
||||
|
||||
// Вывожу результат -- успех
|
||||
return true;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user