Изменение записей
В данном разделе описаны методы класса 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 имеет уникальный индекс.