今天为大家讲讲WordPress数据库接口的使用方法和说明,当我们有的时候实在找不到WordPress函数来解决问题时,首先想到的便是使用数据库语句来解决,而且有的时候使用SQL语句要比使用函数方便的多,当然了你得熟悉和了解如何写SQL语句。WordPress为我们提供了一个数据库类叫wpdb,通过使用这个类来进行一些相关操作。接下来我们就说下这个类的使用方法。首先我要使用这个类下面的一些方法,不能直接调用。WordPress提供了这个类的全局变量叫$wpdb,通过这个全局变量来与WordPress数据库进行关联,所以我们在使用之前,需要先定义下这个全局变量,写法是显示源码打印帮助
1 <?php  global $wpdb;  ?>
1.执行数据库查询通过query函数在WordPress数据库中执行任何SQL查询。推荐使用SELECT查询。显示源码打印帮助
1 <?php $wpdb->query('query'); ?>
示例删除ID为13的文章
显示源码打印帮助
1 $wpdb->query("DELETE FROM $wpdb->posts WHERE post_id = '13' ");
2.选择一个变量
get_var函数返回一个来自数据库的变量。虽然只返回一个变量,如果没有查询结果,返回NULL。显示源码打印帮助
1 <?php $wpdb->get_var('query',column_offset,row_offset); ?>
query(字符串)你希望执行的查询。将该参数设为null会使函数返回上一个查询缓存结果中的具体变量。
column_offset(整数)预计的数据库表的列数(0为表中第一列)。默认值为0。
row_offset(整数)预计的数据库表的行数(0为表中第一行)。默认值为0。

示例

检索并返回用户数量
显示源码打印帮助

1 <?php  

 2    

 3 $user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->users;"));  

 4    

 5 echo '<p>用户一共有 ' . $user_count . '人</p>';  

 6    

 7 ?>


3.选择表行

可使用get_row函数。该函数可将行作为对象、关联数组或数值索引数组返回。如果查询返回了多个行,函数只返回第一行。

显示源码打印帮助
1 <?php $wpdb->get_row('query', output_type, row_offset); ?>
query

(字符串)你希望执行的查询语句。

output_type

三个预定义的常量之一。默认值为OBJECT。OBJECT —— 返回的结果以对象形式输出,ARRAY_A ——返回的结果以关联数组形式输出,ARRAY_N —— 返回的结果以数值索引数组形式输出

row_offset

(整数)预计的数据库表的行数(0为表中第一行)。默认值为0。

示例

获取ID为10的链接的所有信息。
显示源码打印帮助

01 <?php    02     03 $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");     04     05 //$mylink对象的属性即SQL查询结果的行名称(即$wpdb->links表中的所有行)。   06     07 echo $mylink->link_id; // prints "10"     08     09 //使用ARRAY_A   10     11 $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A);     12     13 //则会生成一个关联数组:   14     15 echo $mylink['link_id']; // prints "10"     16     17 //使用ARRAY_N   18     19 $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N);     20     21 //则会生成一个数值索引数组:   22     23 echo $mylink[1]; // prints "10"     24     25 ?>


4.选择表列

要选择数据库表中的一列内容,可使用get_col函数。该函数输出一个空间数组,如果查询返回了多个列。

显示源码打印帮助
1 <?php $wpdb->get_col('query',column_offset); ?>
query

(字符串)你希望执行的查询。将该参数设为null会使函数返回上一个查询的缓存结果中的执行表列。

column_offset

(整数)预计的数据库表的列数(0为表第一列)。默认值为0。

示例

返回指定文章类型的ID号
显示源码打印帮助

1 <?php  

 2    

 3 $resaults = $wpdb->get_col("SELECT * FROM $wpdb->posts WHERE post_type = 'question'");      

 4    

 5 print_r($resaults);  

 6    

 7 ?>


5.选择生成的结果

get_results可以从数据库中抽取函数生成的多行结果。wpdb函数以数组形式返回整个查询结果。

显示源码打印帮助
1 <?php $wpdb->get_results('query', output_type); ?>
query

(字符串)你希望执行的查询语句。将该参数设为null会使函数返回上一个查询的缓存结果中的信息。

output_type

三个预定义的常量之一。默认值为OBJECT。更多信息请见上文的“选择表行”。OBJECT —— 以对象形式输出返回的结果,ARRAY_A ——以关联数组形式输出返回的结果,ARRAY_N —— 以数值索引数组形式输出返回的结果

示例

返回指定文章类型的所有文章内容
显示源码打印帮助

1 $resaults = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'question'");      

 2    

 3 print_r($resaults);


以上部分便是WordPress数据库接口的查询部分,通过上面提供的方法我们可以使用SQL语句来对数据库内容进行查询和获取内容,不过需要大家对SQL这方面熟悉。下一篇为大家说下WordPress数据库接口分析之增删改部分,望大家多多关注!