This commit is contained in:
2025-08-19 23:38:52 +03:00
parent 5074629e40
commit cc3b1ef41b
8 changed files with 189 additions and 157 deletions

View File

@@ -8,6 +8,7 @@
use goodboyalex\php_components_pack\classes\Tuple;
use goodboyalex\php_components_pack\interfaces\IArrayable;
use goodboyalex\php_db_components_pack\enums\DBDriver;
use InvalidArgumentException;
/**
@@ -45,11 +46,12 @@
/**
* Формирует массив условий.
*
* @param DBDriver $driver Тип драйвера СУБД.
* @param int $index Индекс замены параметров для защиты от SQL-инъекций.
*
* @return Tuple (string, array) Массив условий (строка SQL, параметры SQL).
*/
public function GetConditions (int $index = 0): Tuple
public function GetConditions (DBDriver $driver, int $index = 0): Tuple
{
// Создаём результирующую строку
$resultString = "";
@@ -66,7 +68,7 @@
$count++;
// - получаем условие
$result = $this->WriteCondition($this->Conditions[$i], $count);
$result = $this->WriteCondition($driver, $this->Conditions[$i], $count);
// - записываем условие в строку
$resultString .= $result->Get(0);
@@ -182,22 +184,23 @@
/**
* Формирует условие.
*
* @param DBDriver $driver Тип драйвера СУБД.
* @param mixed $condition Условие.
* @param int $index Индекс замены параметров для защиты от SQL-инъекций.
*
* @return string Возвращает условие в виде строки SQL.
* @return Tuple Возвращает условие в виде строки SQL.
*/
private function WriteCondition (mixed $condition, int $index = 0): Tuple
private function WriteCondition (DBDriver $driver, mixed $condition, int $index = 0): Tuple
{
// Проверяем, является ли условие объектом класса Condition
if ($condition instanceof Condition)
// - если да, то возвращаем его значение
return $condition->Get($index);
return $condition->Get($driver, $index);
// Проверяем, является ли условие объектом класса ConditionGroup
if ($condition instanceof ConditionGroup)
// - если да, то возвращаем его значения
return $condition->GetConditions($index);
return $condition->GetConditions($driver, $index);
// Если условие не является ни классом Condition, ни классом ConditionGroup, то это ошибка. Выбрасываем
// исключение.