# 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()— удаление строк.