WPDB::UPDATE() — Обновление данных в базе данных WordPress
WPDB::UPDATE() — это метод, который позволяет обновлять данные в указанной строке таблицы базы данных в WordPress. Этот метод защищает от SQL-инъекций, что делает его безопасным для и��пользования. Вы можете передавать данные, полученные от пользователя, например: $_GET['foo']
.
Основные моменты
- Метод не добавляет данные, если они отсутствуют в базе данных; он только обновляет существующие записи.
- Для проверки успешности выполнения запроса необходимо проверить результат: если он равен
false
, это означает, что произошла ошибка.
Возвращаемые значения
Метод возвращает одно из следующих значений:
- Целое число — количество обработанных строк.
- 0 — запрос выполнен, но не было обновлено ни одной строки (например, если данные в базе данных совпадают с теми, что вы пытаетесь установить).
- false — произошла ошибка.
Чтобы проверить успешность запроса, используйте условие $res === false
, так как 0
может вернуть правильный запрос, но без изменений.
Использование
Для использования метода вам необходимо выполнить следующие шаги.
global $wpdb;
$wpdb->update( $table, $data, $where, $format, $where_format );
Параметры
- $table (строка) (обязательный) — имя таблицы, в которой необходимо обновить данные.
- $data (массива) (обязательный) — данные для обновления. Формат:
[ 'имя_столбца' => 'новое_значение' ]
. Если указатьNULL
, будет установлено значениеNULL
, формат игнорируется. - $where (массива) (обязательный) — массив условий для обновления (в виде пар
[ столбец => значение ]
). Несколько условий соединяются с помощьюAND
.- Если указать
NULL
, будет выполнено сравнениеIS NULL
.
- Если указать
- $format (массив/строка) — массив форматов для каждого значения параметра
$data
(например,%s
для строки,%d
для целого числа). Если не указано, все значения в$where
считаются строками. - $where_format (массив/строка) — аналогично параметру
$format
, но для данных$where
.
Примеры использования
Пример 1: Обновление строки по ID
Обновляет значение в таблице, где ID равен 1:
$wpdb->update( 'table_name',
[ 'column1' => 'value1', 'column2' => $_GET['val'] ],
[ 'ID' => 1 ]
);
Пример 2: Указание типов передаваемых данных
Тот же запрос, но с явно указанными типами данных:
$wpdb->update( 'table',
[ 'column1' => 'value1', 'column2' => $_GET['val'] ],
[ 'ID' => 1 ],
[ '%s', '%d' ], // Формат данных
[ '%d' ] // Формат для WHERE
);
Пример 3: Демонстрация обновления нескольких полей
$wpdb->update( 'table', [ 'column' => 'foo', 'field' => 'bar' ], [ 'ID' => 1 ] );
$wpdb->update( 'table', [ 'column' => 'foo', 'field' => 1337 ], [ 'ID' => 1 ], [ '%s', '%d' ], [ '%d' ] );
Примечания
- Ознакомьтесь с методом
wpdb::prepare()
для безопасного формирования SQL-запросов. - Изучите
wpdb::$field_types
для информации о типах полей.
Изменения
Метод был введен в версии 2.5.0.