Документация InstantCMS

для администраторов и разработчиков

Инструменты пользователя

Инструменты сайта


dev:models:modify

Изменение записей

В данном разделе описаны методы класса cmsModel, позволяющие добавлять, изменять и удалять записи из базы данных.

Все примеры кода подразумевают, что действие происходит в контексте модели (т.е. внутри класса вашей модели, унаследованного от cmsModel).

Вы должны иметь представление о работе SQL-запросов для полного понимания описанных здесь методов.

Добавление записей

Список INSERT запросов к базе данных.

Простое добавление

insert($table_name, $data, $array_as_json = false, $ignore = false)
$table_nameНазвание таблицы, без префикса
$dataМассив данных для вставки, где ключи массива это название ячейки таблицы БД, а значение - данные для записи. Обратите внимание, если в массиве данных есть названия ключей, которых нет в списке ячеек таблицы, то ошибки при вставке не будет, - эти данные будут проигнорированы.
$array_as_jsonЕсли значение записываемого поля массив, то движок по умолчанию преобразовывает его в YAML. Если значение этого параметра true, массив будет преобразован в JSON.
$ignoreЕсли значение этого параметра true, будет выполнен запрос INSERT IGNORE вместо простого INSERT.

Метод возвращает id вставленной строки.

Пример:

$id = $this->insert('users_statuses', ['content' => 'Мой статус', 'user_id' => 1]);

Добавление с обновлением

Метод выполняет запрос INSERT, но при совпадении PRIMARY или UNIQUE ключа выполняет UPDATE вместо INSERT.

insertOrUpdate($table_name, $insert_data, $update_data = false)
$table_nameНазвание таблицы, без префикса
$insert_dataМассив данных для вставки, где ключи массива это название ячейки таблицы БД, а значение - данные для записи. Ключи массива не проверяются на наличие ячеек в таблице.
$update_dataМассив данных для обновления существующей записи при совпадении уникальных ключей. Если этот параметр равен false, то будет равен параметру $insert_data.

Метод возвращает id вставленной строки при условии, что строка добавлена, а не обновлена.

Пример:

$id = $this->insertOrUpdate('tags', ['tag' => $tag]);

Если в ячейке tag значение $tag уже есть в таблице, то $id будет равен false. Ячейка tag имеет уникальный индекс.


dev/models/modify.txt · Последнее изменение: 27.08.2022 22:02 — fuze