wpdb::insert() publicWP 2.5.0

Вставляє рядок (зазначені дані) у вказану таблицю.

Метод очищає передані дані та захищає від SQL ін’єкцій, тому дані можуть бути “брудні” (неочищені), наприклад: $_GET['foo'].

Після додавання даних створене значення AUTO_INCREMENT можна отримати у змінній: $wpdb->insert_id.

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

Працює на основі:
wpdb::_insert_replace_helper()

Хуків немає.

Повертає

int|false.

  • число– Число вставлених рядків.
  • false– Якщо дані не були вставлені в таблицю.

УВАГА! Поверне false (без будь-яких помилок), коли рядок (значення комірки), що передається для вставки, довше максимально можливого. Наприклад, колонка varchar(10) (довжина значення 10 символів), а в переданих даних для вставки вказаний рядок з 11 або більше символами.

Впіймати такий баг дуже складно! Тому треба мати це на увазі, коли все ніби має працювати (правильні дані передається), але wpdb::insert() повертає false без будь-яких помилок.

Така проблема стосується майже всіх методів, це:
wpdb::replace()
wpdb::insert()
wpdb::update()
wpdb::delete()

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

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

Дані, які потрібно вставити. Кожен елемент масиву має такий вигляд: [ 'колонка таблицы' => 'значение' ].

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

Дані, що передаються, НЕ повинні бути очищені: esc_sql() .

$format
(масив/рядок)

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

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

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

Приклади

1

#1 Вставимо рядок у таблицю БД

// Вставка рядка із зазначенням значень для двох полів (значення для інших полів будуть дефолтні)
$wpdb->insert( 'table', [ 'column' => 'foo', 'field' => 'bar' ] );

// із зазначенням типів даних
$wpdb->insert( 'table', [ 'column' => 'foo', 'field' => 1337 ], [ '%s', '%d' ] );

нотатки

список змін

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

wpdb::insert WP 6.0.2

public function insert( $table, $data, $format = null ) {
	return $this->_insert_replace_helper( $table, $data, $format, 'INSERT' );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *