WordPress提供了一个类的操作数据库存的全局变量叫$wpdb,通过这个全局变量来与WordPress数据库进行关联,所以我们在使用之前,需要先定义下这个全局变量,写法如下:
<?php global $wpdb; ?>
下文总结
- query :执行数据库查询,返回查询的结果数。
- get_row :查询返回了多个行,但是只返回第一行
- get_results : 返回多行数据
query 函数
执行数据库查询,可以通过 query 函数在WordPress数据库中执行任何SQL查询。Select查询只返回查询的结果数。
<?php $wpdb->query('query'); ?>
举个例子说明一下:删除ID为13的文章。
<?php $wpdb->query("DELETE FROM $wpdb->posts WHERE post_id = '13' "); ?>
get_row 函数
想要选择表的一行,可以使用get_row函数。该函数可将行作为对象、关联数组或数值索引数组返回。如果查询返回了多个行,函数只返回第一行
。
<?php $wpdb->get_row('query', output_type, row_offset); ?>
参数说明:
query :(字符串)你希望执行的查询语句。
output_type :三个预定义的常量之一。默认值为OBJECT。
OBJECT —— 返回的结果以对象形式输出,
ARRAY_A ——返回的结果以关联数组形式输出,
ARRAY_N —— 返回的结果以数值索引数组形式输出
row_offset:(整数)预计的数据库表的行数(0为表中第一行)。默认值为0。
示例如下:获取ID为10的链接的所有信息。
<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");
//$mylink对象的属性即SQL查询结果的行名称(即$wpdb->links表中的所有行)。
echo $mylink->link_id; // prints "10"
//使用ARRAY_A
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A);
//则会生成一个关联数组:
echo $mylink['link_id']; // prints "10"
//使用ARRAY_N
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N);
//则会生成一个数值索引数组:
echo $mylink[1]; // prints "10"
?>
get_results 函数
查询结果集,get_results 函数可以从数据库中抽取函数生成的多行结果。$wpdb 函数以数组形式返回整个查询结果。
<?php $wpdb->get_results('query', output_type); ?>
参数说明:
query:(字符串)你希望执行的查询语句。将该参数设为null会使函数返回上一个查询的缓存结果中的信息。
output_type:三个预定义的常量之一,默认值为 OBJECT;
OBJECT —— 以对象形式输出返回的结果;
ARRAY_A ——以关联数组形式输出返回的结果;
ARRAY_N —— 以数值索引数组形式输出返回的结果。
示例说明: 返回指定文章类型的所有文章内容
<?php
$resaults = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'question'");
print_r($resaults);
?>