20250819
This commit is contained in:
@@ -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, то это ошибка. Выбрасываем
|
||||
// исключение.
|
||||
|
Reference in New Issue
Block a user