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