This commit is contained in:
2025-08-06 18:10:04 +03:00
parent 7b42ba781c
commit eeea57209e
19 changed files with 636 additions and 16 deletions

View File

@@ -3,6 +3,7 @@
namespace goodboyalex\php_db_components_pack\classes;
use goodboyalex\php_components_pack\classes\Tuple;
use goodboyalex\php_components_pack\extensions\StringExtension;
use goodboyalex\php_components_pack\interfaces\IArrayable;
use PHPUnit\Event\InvalidArgumentException;
@@ -106,11 +107,29 @@
*/
public function Get (int $index = 0): Tuple
{
// Формирование условия SQL
$sql = "`$this->ColumnName` $this->Operator :prop_$index";
// Начинаю формировать SQL
$sql = (!str_starts_with($this->ColumnName, "FUNC:"))
? "`$this->ColumnName`"
: StringExtension::Replace('FUNC:', '', $this->ColumnName);
// Формирование параметров запроса
$params = [":prop_$index" => $this->Value];
// Добавляю оператор
$sql .= " $this->Operator ";
// Если это строковое значение и передаётся функция
if (is_string($this->Value) && str_starts_with($this->Value, "FUNC:")) {
// - то добавляю код SQL этой функции
$sql .= StringExtension::Replace('FUNC:', '', $this->ColumnName);
// - и устанавливаю пустые параметры запроса
$params = [];
}
else {
// - в противном случае, добавляю "муляжное" значение
$sql .= ":prop_$index";
// - а настоящее пропишем в параметрах запроса
$params = [":prop_$index" => $this->Value];
}
// Возвращение результата
return new Tuple($sql, $params);