wpdb::update()
Оновлює вказані дані у вказаному рядку таблиці.
Метод включає захист від SQL ін’єкцій та дані можна передавати як є, наприклад: $_GET['foo']
.
Читайте також: Масив для значень поля в $where параметрі $wpdb->update .
НЕ вставляє дані, якщо їх немає в БД – тільки оновлює існуючі дані.
{} Це метод класу: wpdb{}
Хуків немає.
Повертає
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
Приклади
#1 Оновимо рядок ID якого дорівнює 1
Значення першої колонки рядок, значення другої колонки число:
$wpdb->update( 'table', [ 'column1' => 'value1', 'column2' => $_GET['val'] ], [ 'ID' => 1 ] );
#2 Теж саме із зазначенням типів переданих даних
$wpdb->update( 'table', [ 'column1' => 'value1', 'column2' => $_GET['val'] ], [ 'ID' => 1 ], [ '%s', '%d' ], [ '%d' ] );
#3 Demo
$wpdb->update( 'table', [ 'column' => 'foo', 'field' => 'bar' ], [ 'ID' => 1 ] ); $wpdb->update( 'table', [ 'column' => 'foo', 'field' => 1337 ], [ 'ID' => 1 ], [ '%s', '%d' ), [ '% d']]);
нотатки
- Дивіться: wpdb::prepare()
- Дивіться: wpdb::$field_types
- Дивіться: wp_set_wpdb_vars()
список змін
З версії 2.5.0 | Введено. |