wpdb::update() publicWP 2.5.0

Оновлює вказані дані у вказаному рядку таблиці.

Метод включає захист від SQL ін’єкцій та дані можна передавати як є, наприклад: $_GET['foo'].

НЕ вставляє дані, якщо їх немає в БД – тільки оновлює існуючі дані.

{} Це метод класу: wpdb{}

Працює на основі:
wpdb::query() ,
wpdb::process_fields()

Хуків немає.

Повертає

int|false.

  • число– скільки рядків було опрацьовано
  • 0– запит було виконано коректно, але жодний рядок не було опрацьовано. Якщо в БД вже є дані і ви намагаєтеся оновити, вказавши такі самі дані, то wpdb::update() поверне 0.
  • false– Запит провалився або помилка запиту.

Так як повертається 0, якщо ніякі поля не були оновлені (змінені), але запит був виконаний коректно, перевірку результату запиту на помилку потрібно робити з урахуванням типу даних, що повертаються $res === false.

Використання

Global $wpdb;
$wpdb->update( $table, $data, $where, $format, $where_format );
$table
(рядок) (обов’язковий)
Назва таблиці, дані у якій потрібно оновити.
$data
(масив) (обов’язковий)

Дані, які потрібно оновити у форматі [ 'название колонки' => 'новое значение' ].

Якщо в значенні вказати NULL , то значення буде встановлено в NULL , відповідний формат при цьому ігнорується.

$where
(масив) (обов’язковий)
Асоційований масив з умовою вибірки рядків таблиці, дані в яких потрібно оновити (SQL WHERE). Формат масиву:
[ 'название колонки' => 'чему равно' ]. Якщо зазначити кілька елементів у масиві, то зазначені умови будуть об’єднані через
AND– тобто. повинні будуть збігтися всі умови, а не якесь одне. Якщо в значенні вказати
NULL, то в запиті отримаємо порівняння
IS NULL, відповідний формат при цьому ігнорується.
$format
(масив/рядок)

Масив форматів даних, які будуть асоційовані із зазначеними значеннями у параметрі $data . Якщо зазначений рядок, то він (формат) буде асоційований з усіма даними. При вказівці формату WordPress переводить передані дані у вказаний формат перед створенням запиту. Можливі формати:

  • %s– Рядок
  • %d– ціле число
  • %f– дробове число

Якщо не вказати, то для всіх значень $data буде вказано формат строка, якщо інше не зазначено у властивості wpdb::$field_types .
Типово: null

$where_format
(масив/рядок)
Теж саме
$format , тільки для
$where даних.


Типово: null

Приклади

0

#1 Оновимо рядок ID якого дорівнює 1

Значення першої колонки рядок, значення другої колонки число:

$wpdb->update( 'table',
	[ 'column1' => 'value1', 'column2' => $_GET['val'] ],
	[ 'ID' => 1 ]
);
0

#2 Теж саме із зазначенням типів переданих даних

$wpdb->update( 'table',
	[ 'column1' => 'value1', 'column2' => $_GET['val'] ],
	[ 'ID' => 1 ],
	[ '%s', '%d' ],
	[ '%d' ]
);
0

#3 Demo

$wpdb->update( 'table', [ 'column' => 'foo', 'field' => 'bar' ], [ 'ID' => 1 ] );
$wpdb->update( 'table', [ 'column' => 'foo', 'field' => 1337 ], [ 'ID' => 1 ], [ '%s', '%d' ), [ '% d']]);

нотатки

список змін

З версії 2.5.0Введено.