php接口中直接执行sql,如何在wordpress中直接执行sql语句

任何的系统都离不开数据库,用到数据库存就有sql查询语句 ,wordpress也不例外; 今天我们就来简单的介绍一下在wordpress中直接执行sql查询语句的一些方法;

WordPress提供了一个类的操作数据库存的全局变量叫$wpdb,通过这个全局变量来与WordPress数据库进行关联,所以我们在使用之前,需要先定义下这个全局变量,写法如下:<?php global $wpdb; ?>

query 函数

执行数据库查询,可以通过 query 函数在WordPress数据库中执行任何SQL查询。Select查询只返回查询的结果数。<?php $wpdb->query('query'); ?>

举个例子说明一下:删除ID为13的文章。<?php $wpdb->query("DELETE FROM $wpdb->posts WHERE post_id = '13' "); ?>

get_var 函数

如果要选择一个变量,可以使用 get_var 函数返回一个来自数据库的变量。但只返回一个变量,如果没有查询结果,则返回NULL。<?php $wpdb->get_var('query',column_offset,row_offset); ?>

参数说明:

query

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

column_offset

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

row_offset

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

举例说明一下:检索并返回用户数量。<?php

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

echo '

用户一共有 ' . $user_count . '人

';

?>

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_col函数

要选择数据库表中的一列内容,可使用get_col函数。该函数输出一个空间数组,如果查询返回了多个列。<?php $wpdb->get_col('query',column_offset); ?>

参数说明:

query

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

column_offset

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

例子如下: 返回指定文章类型的ID号<?php

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

print_r($resaults);

?>

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);

?>

上面介绍的就是WordPress数据库接口的查询部分,通过上面提供的方法我们可以使用SQL语句来对数据库内容进行操作,可以执行查询获取内容或更新/删除内容等。

附:wordpress中常用sql语句

1、开启所有评论UPDATE wp_posts

SET comment_status = 'open'

WHERE post_status = 'publish';

2、关闭旧文章的留言UPDATE wp_posts

SET comment_status = 'closed'

WHERE post_date < '2009-01-01' AND post_status = 'publish'

3、删除所有的垃圾评论DELETE FROM wp_comments

WHERE comment_approved = 'spam'

4、删除所有文章修订版本(Revisions)以及它们的Meta数据DELETE a,b,c

FROM wp_posts a

LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)

LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)

WHERE a.post_type = 'revision'

5、清理wp_postmeta表DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';

DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';

DELETE FROM wp_postmeta WHERE meta_value = '{{unknown}}';

好了,woprdpress 直接执行SQL查询就先介绍到这; 喜欢的就收藏下了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值