Работаем с базой данных wordpress

Появилась у меня задачка написать отдельный файлик для работы с базой сайта на wordpress, чтоб этот php файл можно было с помощью include вставить в пост или страницу на блоге. Но в то же время нужно было сделать так, чтоб этот файлик мог обрабатывать аякс запросы отдельно от всего блога и выдавать только результат.

Вот тут и пригодились функции wordpress для работы с базой данных. Класс WordPress database весьма обширен и предоставляет набор методов для эффективной работы с базой данных и таким образом позволяет использовать стандарты WordPress.

Оновные методы модуля:

  • 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 для выполнения подобно синтакису sprintf().
  • get_row($query, $output, $y) — получение одной строки из базы.
  • get_col($query, $x) — получение одной колонки из базы в виде массива.

Таким образом мне для работы с этим классом нужно было вставить в мой php файл строчки

 

require_once( dirname(__FILE__) . '/wp-load.php' );
global $wpdb;

А далее уже использовать его функции на свое усмотрение. Например:

if($row = $wpdb->get_row( "SELECT * FROM  `gw_biglion` WHERE `code` = '$code'" )){
             if($row->city !== '' and $row->adress !== ''){
                $arr = array('code' => $code, 'city' => $city, 'adress' => $adress, 'campaign' => $campaign, 'date' => date('Y-m-d H:i:s'));
                $wpdb->update('gw_biglion',$arr, array('id' => $row->id) );
                $result = '<div class="success">Информация успешно обновлена.</div>';
             }
             else{
                $arr = array('code' => $code, 'city' => $city, 'adress' => $adress, 'campaign' => $campaign, 'date' => date('Y-m-d H:i:s'));
                $wpdb->insert('gw_biglion',$arr);
                $result = '<div class="success">Информация о Вашем коде успешно добавлена.</div>';
             }
        }
        else{
            $result = '<div class="error">Такого кода не существует!</div>';
        }

Таким образом получается использовать только необходимый  wordpress функционал в своем файле, а это очень удобно!

This entry was posted in Php. Bookmark the permalink.

Один комментарий: Работаем с базой данных wordpress

  1. Помогла статья, спасибо.

Добавить комментарий

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

*