Репетитор по скайпу. Wordpress wpdb
Как получить доступ к переменной $wpdb в wordpress?
Как получить доступ к переменной $wpdb в wordpress?
Ответ
Такая необходимость может возникнуть, если, например, создать новый php-файл в теме с отдельный дизайном. Решить проблему можно несколькими способами.
Первый способ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// формируем путь $url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $url = $_SERVER['REQUEST_URI']; $my_url = explode('wp-content' , $url); $path = $_SERVER['DOCUMENT_ROOT']."/".$my_url[0];
// подключаем include_once $path . '/wp-config.php'; include_once $path . '/wp-includes/wp-db.php'; include_once $path . '/wp-includes/pluggable.php';
global $wpdb; // теперь переменная $wpdb доступна //далее работа с $wpdb
|
Второй способ
define( 'SHORTINIT', true ); require( '/path/to/wp-load.php' ); global $wpdb; //работаем с $wpdb |
Третий способНикто не запрещает узнать параметры подключения к базе, самостоятельно установить соединение и работать с данными через mysqli (а лучше через PDO).
include "WP-ROOT-PATH/wp-config.php"; $db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // проверка соединения if (mysqli_connect_errno()){ // ошибка exit("Не удалось подключиться к базе: ".mysqli_connect_error()); } // работаем с базой |
еще вопросы и ответы
Метки wordpress. Смотреть запись.
Использование класса $wpdb CMS WordPress
Приведено описание возможностей класса $wpdb по взаимодействию с базой данных системы управления контентом WordPress. Приведены ссылки на описание наиболее часто используемых методов класса.Класс wpdb системы WordPress
В PHP скриптах WordPress реализован класс для взаимодействия с базой данных. Он представлен переменной $wpdb, находится в файле /wp-includes/wp-db.php и предоставляет администратору системы управления контентом WordPress готовый и удобный инструментарий для взаимодействия с базами данных MySQL. С его помощью можно работать не только с таблицами базы данных WordPress, но и с дополнительными таблицами, как WordPress, так и любой другой базы данных, единственное, надо учесть, что объект $wpdb работает только с текущим подключением к БД, в нашем случае с базой данных системы WordPress. Для взаимодействия с другими базами данных необходимо создать новый экземпляр класса $wpdb со своими параметрами соединения к требуемой базе данных.И последнее, для доступа к методам объекта внутри пользовательских функций переменную, которая ссылается на объект, т.е., $wpdb, надо сделать глобальной, иначе переменная с таким именем будет интерпретироваться как локальная переменная функции. Для этого внутри функции надо прописать
Перечень основных методов класса $wpdb
Код объекта хорошо документирован, где находится — приведено выше. Для тех же, кому нужно описание методов, привежу их список с кратким описанием. Более детальную информацию по приведенным методам с примерами использования можно получить перейдя по ссылке интересуемого метода.
- $wpdb->query( ‘строка_запроса’ ) — выполняет SQL запрос к базе данных;
- $wpdb->get_results( ‘строка_запроса’, ‘тип выхода’ ) — возвращает запрошенный набор данных;
- $wpdb->get_row( ‘строка_запроса’, тип выхода, смещение_строки ) — возвращает одну запись таблицы;
- $wpdb->get_var( ‘строка_запроса’, смещение_колонки, смещение_строки) — возвращает значение ячейки таблицы;
- $wpdb->get_col( ‘строка_запроса’, смещение_колонки ) — возвращает столбцец таблицы;
- $wpdb->prepare( ‘строка_запроса’ [, параметр1, параметр2 … ] ) — защищает запрос от внедрения SQL кода;
- $wpdb->insert( table, $data, $format ) — вставляет в таблицу новую запись;
- $wpdb->update( $table, $data, $where, $data_format = null, $where_format = null ) — изменяет запись таблицы;
- $wpdb->get_col_info( ‘вид информации’, смещение_колонки ) — возвращает справочную информацию о запрошенной колонке или колонках.
- $wpdb->flush() — очищает кзш SQL запросов;
Опубликовано: 27.11.2011 в рубрике WordPress
webdesignstudio1.net
php - База данных Wordpress $wpdb и get_option()
Для хранения параметров плагина или облегченных данных, связанных с сообщениями, get_option(), get_post_meta() и их связанные функции являются идеальными. Для работы с реляционными базами данных лучшим выбором является $wpdb. Вот почему:
$wpdb - класс, основанный на классе PHP ezSQL для взаимодействия с базой данных. Некоторые функции включают в себя:
1) обеспечивает защиту SQL-инъекций с использованием методов $wpdb- > prepare(), $wpdb- > insert() и $wpdb- > update(). get_option() - вспомогательная функция, которая позволяет вам делать пару Key = > Value.
2) $wpdb прост в использовании. Он может возвращать наборы записей в различных формах: $wpdb- > get_results ($ sql, ARRAY_A) Array или Ассоциативные массивы, содержащие возвращенные строки с именами столбцов, являющимися ключами. $wpdb- > get_results ($ sql) вернет массив объектов с именем столбца в качестве свойств объекта. $wpdb- > get_var ($ sql) вернет скалярный результат (первый столбец первой строки набора данных из запроса). $wpdb- > get_row ($ sql) вернет одну строку в качестве объекта.
3) $wpdb позволяет вам взаимодействовать с любой таблицей в базе данных, даже выполняя запросы свободной формы, используя $wpdb- > query ($ sql)
4) WordPress, скорее всего, застрахован от необходимости взаимодействовать с $wpdb, если они добавят поддержку баз данных, отличных от MySQL. Первоначальный класс ezSQL предназначался для поддержки нескольких кросс-баз данных.
Итак, если вам нужно иметь дело с данными реляционным способом, $wpdb действительно отличный выбор для WordPress.
get_option() и get_post_meta() предоставляют простой способ обработки небольших объемов данных, относящихся к конкретной записи в случае get_post_meta() или в виде пары Key = > Value с get_option().
Одна из приятных вещей в том, что вы можете сохранить сериализованный массив или объект и получить эти данные в виде массива или объекта. Это дает вам очень простой способ обработки полей данных, как если бы у вас была таблица базы данных. Однако это не очень хорошо, если вам нужно связать данные между таблицами или делать подсчет, подсчет или другие вычисления базы данных по сериализованным данным. В таких случаях лучше всего использовать полноценный стол и $wpdb.
qaru.site