WPDB::UPDATE() — Обновление данных в базе данных WordPress

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.

Leave a Reply

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