WordPress – работа с базой
Вордпресс предоставляет достаточно обширные возможности для работы с его базой.
Описание всех классов есть в файле wp-includes/wp-db.php. Данные классы позволяют писать плагины, которые будут работать максимально безопасно без нарушения функционала всей системы.
Рассмотрим наиболее часто используемые.
Основные функции
- insert($table, $data, $format) – вставляет строку в таблицу через массивы.
- update($table, $data, $where, $format, $where_format) – обновляет строку в таблице через массивы.
- get_var($query, $x, $y) – получает одиночную переменную из базы данных.
- query($query) — выполняет MySQL-запрос к базе данных, с текущим подключением.
- get_results($query, $output) – получает данные SQL-запроса из базы данных (одну или множество строк).
- escape($data) – Экранирует контент для вставки в базу данных, используя метод addslashes() для безопасности.
Есть несколько и полезных метода:
- set_prefix($prefix) – используется для установления префикса wordpress-таблиц, также может быть использован для переопределения префикса в любое время.
- prepare($query) – безопасно подготавливает SQL-запрос к выполнению, с помощью sprint()-подобного синтаксиса.
- get_row($query, $output, $y) – получает одиночную запись из базы данных.
- get_col($query, $x) – получает одиночную колонку из базы данных в формате массива.
Приведу примеры работы как рекомендуют разработчики WP
/*** insert*/$wpdb->insert($wpdb->posts,array('post_title'=>$mytitle) );$wpdb->insert($wpdb->options,array('option_name','new_option_key','option_value'=>'New Option Value','autoload'=>'yes'));/*** update*/$wpdb->update($wpdb->posts,array('post_title'=>$mytitle),array('ID'=>$myid));$wpdb->update($wpdb->options,array('option_value'=>'New Option Value'),array('option_name'=>'new_option_value'));/*** get_var*/$post_id=$wpdb->get_var($wpdb->prepare( "SELECT post_id FROM$wpdb->postmeta WHEREpost_id = %d ANDmeta_key ='enclosure'ANDmeta_value LIKE (%s)",$post_ID,$url.'&'));$content=$wpdb->get_var($wpdb->prepare("SELECT post_content FROM "."$wpdb->posts WHERE "."post_title = %s AND "."ID = %d",$title,$id));/*** query*/$wpdb->query("DELETE FROM $wpdb->options WHERE option_name = '$name'");$wpdb->query("UPDATE $wpdb->posts SET post_title = '$mytitle' WHERE ID = $myid");/*** query and escape*/$mytitle=$wpdb->escape($mytitle);$myid= absint($myid);$wpdb->query("UPDATE $wpdb->posts SET post_title = '$mytitle' WHERE ID = $myid");/*** get_results*/$type=$wpdb->get_results("SELECT post_type FROM$wpdb->posts WHERE ID=$id");
Разработка интернет-магазинов, скриптов, SEO и повышение конвертации. Менеджмент онлайн проектов.