Метод WPDB::DELETE() в WordPress: использование и примеры

Метод WPDB::DELETE() в WordPress

Метод WPDB::DELETE() используется для удаления строки из базы данных в WordPress. Этот метод позволяет удалять данные из таблиц, что может быть полезно в различных сценариях.

Пример использования

Вот как можно использовать метод delete:

$wpdb->delete(
    'table',
    array(
        'ID' => 1,
    )
);

В этом примере будет удалена строка из таблицы table, где значение поля ID равно 1.

Вот еще один пример с указанием формата:

$wpdb->delete(
    'table',
    array(
        'ID' => 1,
    ),
    array(
        '%d',
    )
);

Здесь мы уточняем, что значение 1 следует обрабатывать как целое число.

Параметры

Метод принимает следующие параметры:

  • $table (строка, обязательно): название таблицы, из которой вы хотите удалить данные.
  • $where (массив, обязательно): ассоциативный массив, где ключи — это имена колонок, а значения — значения, которые нужно удалить. Несколько условий объединяются оператором AND.
  • $where_format (массив строк, опционально): массив форматов, соответствующих каждому значению в $where. Если вы передадите строку, она будет применена ко всем элементам массива. Форматы должны быть из следующих: %d (целое число), %f (число с плавающей запятой), %s (строка). Если этот параметр не указан, все значения будут обработаны как строки, если они не определены в wpdb::$field_types.

Возврат

Метод возвращает:

  • int — количество удаленных строк, или
  • false — если произошла ошибка.

Примеры удаления данных из базы

Пример 1: Удаление строки по ID

// Удаляем строку, где поле ID=1
$wpdb->delete('table', array('ID' => 1));

Пример 2: Использование нескольких условий

$where = [
    'UID' => 248,
    'File' => "C:file.txt"
];

$where_format = [
    '%d',
    '%s'
];

$wpdb->delete($table, $where, $where_format);

В этом примере мы удаляем строку, где UID равен 248, и File — это C:file.txt. Мы также указываем формат для каждого значения.

Замечания

  • Ознакомьтесь с методом wpdb::prepare(), который помогает готовить SQL-запросы. Он снижает риск SQL-инъекций.
  • Важно помнить, что использование IS NULL осуществляется при передаче значений null в массиве $where.

Обновления

Метод WPDB::DELETE() был добавлен в WordPress начиная с версии 3.4.0.

Код метода WPDB::DELETE()

Ниже представлен исходный код метода delete в классе wpdb:


public function delete( $table, $where, $where_format = null ) {
if ( ! is_array( $where ) ) {
return false;
}

$where = $this->process_fields( $table, $where, $where_format );
if ( false === $where ) {
    return false;
}

$conditions = array();
$values     = array();
foreach ( $where as $field => $value ) {
    if ( is_null( $value['value'] ) ) {
        $conditions[] = "$field IS NULL";
        continue;
    }

    $conditions[] = "$field = " . $value['format'];
    $values[]     = $value['value'];
}

$conditions = implode( ' AND ', $conditions );

$sql = "DELETE FROM $table WHERE $conditions";

$this->check_current_query = false;
return $this->query( $this->prepare( $sql, $values ) );

}

Этот код выполняет удаление данных из указанной таблицы на основе условий, заданных в массиве $where.

Leave a Reply

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