20250819
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
use goodboyalex\php_db_components_pack\attributes\PrimaryKey;
|
||||
use goodboyalex\php_db_components_pack\attributes\Unique;
|
||||
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBOperation;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
@@ -283,45 +284,6 @@
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Подготавливает массив параметров
|
||||
*
|
||||
* @param IDBItem $source Объект со свойствами.
|
||||
* @param DBOperation $operation Текущая операция.
|
||||
*
|
||||
* @return array|false Подготовленный массив параметров или false в случае ошибки
|
||||
*/
|
||||
private function PrepareParamsArray (IDBItem $source, DBOperation $operation): array | false
|
||||
{
|
||||
$result = [];
|
||||
|
||||
// Получаю массив свойств
|
||||
$properties = self::GetProperties($source, $operation);
|
||||
|
||||
/**
|
||||
* Для каждого свойства...
|
||||
*
|
||||
* @var DBItemProperty $property Свойство.
|
||||
*/
|
||||
foreach ($properties as $property) {
|
||||
// - пропускаю игнорируемые поля
|
||||
if ($property->IsIgnored)
|
||||
continue;
|
||||
|
||||
// - получаю значение имени поля
|
||||
$fieldName = $property->Column->Name;
|
||||
|
||||
// - преобразую тип
|
||||
$value = call_user_func($property->ConvertToDB, $property->Value);
|
||||
|
||||
// - добавляю в массив
|
||||
$result[$fieldName] = $value;
|
||||
}
|
||||
|
||||
// Возвращаю результат
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Восстанавливает объект из БД.
|
||||
*
|
||||
@@ -492,4 +454,20 @@
|
||||
// Возвращаю запрос
|
||||
return $sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* Генерирует имя таблицы для использования в запросах.
|
||||
*
|
||||
* @param string $table Имя таблицы.
|
||||
*
|
||||
* @return string Готовое имя таблицы для использования в запросах.
|
||||
*/
|
||||
private function PrepareTableName (string $table): string
|
||||
{
|
||||
return match ($this->Config->Driver) {
|
||||
DBDriver::MySQL, DBDriver::SQLite, DBDriver::OracleDB, DBDriver::PostgreSQL => $this->DBSignOpen
|
||||
. $table . $this->DBSignClose,
|
||||
DBDriver::MSSQL => "[dbo].[$table]"
|
||||
};
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user