This commit is contained in:
2025-07-31 17:58:22 +03:00
parent 45fb57981d
commit 2f3dd81d0a
3 changed files with 182 additions and 98 deletions

View File

@@ -8,6 +8,7 @@
use Exception;
use goodboyalex\php_components_pack\classes\Tuple;
use goodboyalex\php_db_components_pack\enums\DBOperation;
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
use PDO;
use PDOException;
@@ -28,20 +29,14 @@
*
* @param string $table Имя таблицы.
* @param IDBItem $row Модель или класс, реализующий интерфейс IDBItem, для вставки.
* @param array $options Массив дополнительных параметров. Может содержать следующие ключи:
*
* - <code>ignore: array</code> - игнорировать перечисленные поля. Когда массив пуст, то ничего
* игнорироваться не будет. По умолчанию - пустой массив.
* - <code>allow: array</code> - включать только перечисленные поля. Когда массив пуст, то все поля будут
* включены. По умолчанию - пустой массив.
*
* @return string|false В случае успеха выведет: id созданной записи, -1, если запись создана, но id не получен
* @return mixed В случае успеха выведет: id созданной записи, -1, если запись создана, но id не получен
* (глюк?) и false, если ошибка
*/
public function Insert (string $table, IDBItem $row, array $options = []): string|false
public function Insert (string $table, IDBItem $row): mixed
{
// Подготавливаю запрос
[$sql, $params] = $this->PrepareInsertSQL($table, $row, $options);
[$sql, $params] = $this->PrepareInsertSQL($table, $row);
// Выполняю запрос
$count = $this->Execute($sql, $params);
@@ -115,10 +110,10 @@
*
* @return Tuple Возвращает [запрос, параметры запроса].
*/
private function PrepareInsertSQL (string $table, IDBItem $row, array $options = []): Tuple
private function PrepareInsertSQL (string $table, IDBItem $row): Tuple
{
// Подготавливаю массив параметров
$params = $this->PrepareParamsArray(source: $row, options: $options);
$params = $this->PrepareParamsArray(source: $row, operation: DBOperation::Insert);
// Получаю ключи параметров
$keys = array_keys($params);