WordPress为用户提供了一系列用于数据库操作的函数类——wpdb。Wpdb类建立在Justin Vincent编写并维护的ezSQL类的基础上。
一、使用须知
不可直接调用wpdb类中的方法,应使用全局变量,‘global $wpdb’。$wpdb是WordPress提供的一个全局变量,该全局变量是负责与WordPress数据库交流的类的实例化。在使用$wpdb前,请记住全局化$wpdb,‘global $wpdb’。
可以用$wpdb对象从任何一个WordPress数据库表(而非仅仅标准数据库表)中读取数据。例如,如果你需要从一个名为“mytable”的自定义表中选定一些信息,可以使用以下代码:
$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );
$wpdb对象可以与任何数量的数据库表交流,但这些数据库表只能来自一个数据库——WordPress数据库。如果你要连接到其它数据库(极少情况),那么你就需要用相应的连接细节信息从wpdb类中将你的对象实例化。如果需要设置多个数据库,可以考虑使用 hyperdb。
二、执行数据库查询
你可以通过query函数在WordPress数据库中执行任何SQL查询。不过我们推荐为SELECT查询使用更为具体的函数。
<?php $wpdb->query('query'); ?>
参数:query,字符串:你希望执行的SQL语句。
函数返回一个与选定内容的行数相应的整数。如果发生MySQL错误,函数返回FALSE。注意:0和FALSE都可能被返回,确保使用正确的比较运算符:等于“==”,还是“ ===”。
注意:使用wpdb类中所有可执行SQL查询的函数时,都需要将所有输入内容/inputs进行字符转义(如wpdb->escape($user_entered_data_string))。见下文。
示例
1.删除ID为13并且meta_key 为“gargle”的值:
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '13' AND meta_key = 'gargle'");
也可由delete_post_meta函数执行,在./wp-admin/includes/post.php中。
2.ID为15的文章的父级设为7:
$wpdb->query("UPDATE $wpdb->posts SET post_parent = 7 WHERE ID = 15 AND post_status = 'static'");
三、选择一个变量
get_var函数返回一个来自数据库的变量。虽然只返回一个变量,但查询结果会被整体缓存,供后期使用。如果没有查询结果,返回NULL。
<?php $wpdb->get_var('query',column_offset,row_offset); ?>
参数:
(1)query:字符串,