2010-01-06 4 views
5

Итак, я разрабатываю плагины, которые создают взаимодействие и удаляют базу данных с помощью функций get_option.

Теперь я просмотрел несколько руководств, в которых показано, как использовать глобальный способ $ wpdb для получения значений из базы данных.

В чем разница между ними и одна лучше другой?

ответ

2

Использование вспомогательных функций WordPress (не ограничивается get_option()) гарантирует, что ваш подключаемый модуль будет передовым, если новая версия WordPress внесла изменения, которые могут потенциально повлиять на ваш код.

Вам рекомендуется понять и использовать своих помощников, прежде чем рассматривать их самостоятельно.

+0

Да, как его рекомендуется использовать get_option() в петлях, так что вместо того, чтобы один вызов дб вы получите как 20 звонков. – Tosh

0

Глобальная переменная $ wpdb более мощна, чем функция get_option(), поскольку она позволяет вам манипулировать и извлекать данные из любой таблицы в wordpress, включая все таблицы плагинов. Это дает вам больше возможностей, чем просто получить доступ к таблице опций.

Вы должны использовать get_option() когда вы специально извлечения вариант из таблицы параметров, используемых для опций плагина. Другие варианты этой функции: add_option, update_option и delete_option. Все связанные функции должны использоваться специально для плагинов.

0

Я использовал оба раньше. Если вы можете использовать вспомогательные функции, вы должны сделать это. Если вам нужно сделать что-то очень обычное, вы можете использовать глобальный. Я использую только глобальный, если я просто должен написать свой собственный запрос.

+0

Я написал плагин обратно в 2.5, используя глобальный '$ wpdb', владелец сайта решил обновить до 2.6 без моей заботы, и вся вещь превратилась в хаотичную, поскольку были внесены изменения, а копии страниц/сообщений стали дикими. Есть еще много второстепенных примеров, которые бросают меня из '$ wpdb' –

3

Для хранения параметров плагина или облегченных данных, связанных с сообщениями, 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-> запрос ($ SQL)

4) WordPress, скорее всего, гарантировать, что ваши взаимодействия с $ wpdb не нужно будет изменять, если они добавят поддержку баз данных, отличных от MySQL. Первоначальный класс ezSQL предназначался для поддержки нескольких кросс-баз данных.

Итак, если вам нужно иметь дело с данными реляционным способом, $ wpdb действительно отличный выбор для WordPress.

get_option() и get_post_meta() предоставляют простой способ обработки небольших объемов данных, относящихся к определенной записи в случае get_post_meta() или как пары Key => Value с get_option().

Одна из приятных вещей в том, что вы можете сохранить сериализованный массив или объект и получить эти данные в виде массива или объекта. Это дает вам очень простой способ обработки полей данных, как если бы у вас была таблица базы данных. Однако это не очень хорошо, если вам нужно связать данные между таблицами или делать подсчет, подсчет или другие вычисления базы данных по сериализованным данным. В таких случаях лучше всего использовать полноценный стол и $ wpdb.

0

Я использую оба в своем развитии.

  • get_option() намного проще для статического или одной информации кусает
  • $wpdb лучше хранить многомерную информацию

Основное отличие заключается в том, что для захвата и идут информацию (например, лицензионные ключи , даты истечения срока действия и статическая информация) get_option() действительно удобен. Он аккуратный, быстрый и очень прост в использовании.

Но, я разрабатываю плагины, которые управляют пользовательскими данными и формами, и в таких случаях get_option() не предлагает универсальность, которая мне нужна, не записывая много составных массивов или не пытаясь отслеживать несколько параметров. Для многомерной информации или для перекрестных ссылок связанных записей данных для плагина $wpdb намного лучше - вы можете структурировать свои собственные таблицы и сортировать/упорядочивать, как вам нравится.

:)

Смежные вопросы