WPDB::REPLACE() – замена строки в таблице WordPress

# WPDB::REPLACE() — Замена строки в таблице

Функция WPDB::REPLACE() используется для замены строки в таблице базы данных WordPress. Она работает как вставка (INSERT), но если в таблице уже есть строка с таким же значением для первичного ключа или уникального индекса, старая строка будет удалена перед вставкой новой.

## Примеры использования

### Пример 1: Простая замена строки

```php
$wpdb->replace(
    'table',
    array(
        'ID'      => 123,
        'column1' => 'foo',
        'column2' => 'bar',
    )
);

В этом примере мы пытаемся заменить строку в таблице table, где ID равен 123. Если такой строки нет, она будет добавлена. Если она уже существует, то заменится.

Пример 2: Замена с указанием формата

$wpdb->replace(
    'table',
    array(
        'ID'      => 456,
        'column1' => 'foo',
        'column2' => 1337,
    ),
    array(
        '%d',
        '%s',
        '%d',
    )
);

Здесь мы также заменяем строку в таблице table с ID равным 456. Мы указываем формат для каждого из значений, где %d обозначает целое число, а %s — строку.

Параметры функции

Функция принимает три параметра:

  • $table (string, обязательный) — имя таблицы, в которую происходит замена.
  • $data (array, обязательный) — данные для вставки в формате "столбец => значение". Оба: названия столбцов и значения должны быть "сырьевыми" (не экранированными).
  • $format (array|string, необязательный) — массив форматов, соответствующих каждому значению в $data. Если передано как строка, будет использоваться один формат для всех значений. Форматы могут быть:
    • %d — целое число
    • %f — число с плавающей точкой
    • %s — строка

Если параметр $format не указан, все значения будут обрабатываться как строки.

Возвращаемое значение

Функция возвращает количество затронутых строк или false в случае ошибки.

Примечания

  • Для корректной работы операции замены требуется наличие первичного ключа или уникального индекса.
  • При отправке значения null, соответствующий столбец будет установлен в NULL, и формат будет игнорироваться.

Изменения

Функция была добавлена в WordPress начиная с версии 3.0.0.

Связанные функции

Другие функции работы с базой данных в WordPress:

  • wpdb::insert() — вставка новой строки.
  • wpdb::update() — обновление существующих строк.
  • wpdb::delete() — удаление строк.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *