所以我一直在开发插件,通过使用get_option函数创建交互和删除到数据库。
我现在已经看到一些教程展示了如何使用从数据库中获取值的全局$ wpdb方法。
这两者之间的区别是什么,并且比另一个更好?
所以我一直在开发插件,通过使用get_option函数创建交互和删除到数据库。
我现在已经看到一些教程展示了如何使用从数据库中获取值的全局$ wpdb方法。
这两者之间的区别是什么,并且比另一个更好?
使用WordPress帮手功能(不限于get_option()
)可以确保您的插件在新版本的WordPress进行了可能会影响您的代码的更改时发挥作用。
在考虑编码自己的代码之前,建议您理解并使用他们的助手。
全局$ wpdb变量比get_option()函数更强大,因为它允许您从wordpress中的任何表(包括所有插件表)操作和检索数据。这使您获得更多的权力,而不仅仅是访问选项表。
你应该使用get_option()当你特别检索从选项表的选项,用于插件的选项。此功能的其他变体是add_option
,update_option
和delete_option
。所有相关的功能都应该专门用于插件选项。
我以前都用过。如果你可以使用辅助函数,你应该这样做。如果你需要做一些非常自定义的事情,你可以使用全局。我只使用全球,如果我只是必须写我自己的查询
我使用全局'$ wpdb'在2.5版本中编写了一个插件,网站所有者决定将其升级到2.6版本,而且整个事情变得混乱,因为引入了修订版本,并且页面/帖子的副本不见踪影。还有更多的小例子让我远离'$ wpdb' – 2010-01-06 23:46:48
为了存储与帖子相关的插件选项或轻量级数据,get_option(),get_post_meta()及其相关函数是理想的。对于关系数据库活动,$ wpdb是最佳选择。原因如下:
$ wpdb是一个基于ezSQL PHP类的类,用于与数据库交互。一些功能包括:
1)使用$ wpdb-> prepare(),$ wpdb-> insert()和$ wpdb-> update()方法提供SQL注入保护。 get_option()是一个帮助函数,它允许您执行Key => Value对。
2)$ wpdb很容易使用。它可以以各种形式返回记录集:$ wpdb-> get_results($ sql,ARRAY_A)一个包含返回行的Array或Associative Arrays,列名是键。 $ wpdb-> get_results($ sql)将返回一个对象数组,其列名称作为对象的属性。 $ wpdb-> get_var($ sql)会返回一个标量结果(查询中数据集第一行的第一列)。 $ wpdb-> get_row($ sql)将返回一行作为对象。
3)$ WPDB允许您与数据库中的任何表进行交互,即使在执行使用$ wpdb->查询($ SQL)免费查询形式
4)的WordPress将可能确保与WPDB $的互动如果他们添加对MySQL以外的数据库的支持,则不需要更改。最初的ezSQL类旨在提供一些跨数据库支持。
因此,如果您需要以关系方式处理数据,$ wpdb确实是WordPress的绝佳选择。()和get_post_meta()提供了一种处理少量数据的简单方法,或者与get_post_meta()中的特定帖子相关联,或者与get_option()中的Key => Value对相关。
这些好事之一是,你可以保存一个序列化的数组或对象,并将数据作为数组或对象返回。这为您提供了一种处理数据字段的非常简单的方法,就好像您拥有数据库表一样。但是,如果您需要在表之间关联数据或对串行化数据执行求和,计数或其他数据库计算,则这不起作用。我这些情况下,一个完全成熟的表和$ wpdb会更好地服务。
我在我的开发中都用到了。
get_option()
是静态或单信息更容易咬$wpdb
是用于存储多维信息较好的主要区别是,抓斗和去信息(如许可证密钥,到期日期和静态信息)get_option()
真的很方便。它修剪,快速,而且非常易于使用。但是,我开发了管理用户数据和表单提交的插件,并且在这种情况下,像这样的get_option()
不提供我需要的多功能性,而无需编写大量复合数组或试图跟踪多个选项。对于多维信息或插件的交叉引用相关数据条目,$wpdb
要好得多 - 您可以构建自己的表格并按照自己的喜好进行排序/组织。
:)
呀喜欢它建议使用get_option()中循环,从而使而不是一个调用DB你得到20个电话。 – Tosh 2012-12-04 20:46:02