Метод 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
.