wordpress中直接使用sql查询方法介绍
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-22 10:34:56 浏览: 评论:0
一般情况下我们是不需要在wordpress模板中调用sql语句了,但我有一些很不一样的要求需要自己执行sql查询得出结果了,下面我来介绍在wordpress中直接使用sql查询.
首先我要使用这个类下面的一些方法,不能直接调用,WordPress提供了这个类的全局变量叫$wpdb,通过这个全局变量来与WordPress数据库进行关联,所以我们在使用之前,需要先定义下这个全局变量,写法是:<?php global $wpdb; ?>
执行数据库查询:通过query函数在WordPress数据库中执行任何SQL查询,推荐使用SELECT查询,代码如下:<?php $wpdb->query('query'); ?>
删除ID为13的文章,代码如下:
$wpdb->query("DELETE FROM $wpdb->posts WHERE post_id = '13' ");
选择一个变量: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 '<p>用户一共有 ' . $user_count . '人</p>';
- ?>
选择表行:可使用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函数,该函数输出一个空间数组,如果查询返回了多个列,代码如下:
<?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可以从数据库中抽取函数生成的多行结果。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语句来对数据库内容进行查询和获取内容,不过需要大家对SQL这方面熟悉.
wordpress中常用sql语句
开启所有评论,代码如下:
- UPDATE wp_posts
- SET comment_status = ‘open’
- WHERE post_status = ‘publish’;
关闭旧文章的留言,代码如下:
- UPDATE wp_posts
- SET comment_status = ‘closed’
- WHERE post_date < '2009-01-01' AND post_status = 'publish'
删除所有的垃圾评论,代码如下:
- DELETE FROM wp_comments
- WHERE comment_approved = ‘spam’
删除所有文章修订版本(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’
清理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}}’;
写成shell脚本,添加表优化,可以使用crontab定时调用处理.
Tags: wordpress sql查询
相关文章
- ·WordPress初级教程1:什么是博客?(2013-11-11)
- ·WordPress初级教程-2: 什么是WordPress?(2013-11-11)
- ·WordPress初级教程-3: WordPress的功能和特点(2013-11-11)
- ·WordPress初级教程-4: 选择WordPress博客的主机和域名(2013-11-11)
- ·WordPress初级教程-5: 安装WordPress(2013-11-11)
- ·WordPress初级教程-6: 本地安装WordPress(2013-11-11)
- ·WordPress初级教程-7: 一个数据库中安装多个WordPress博客(2013-11-11)
- ·WordPress初级教程-8: WordPress控制面板/ Dashboard(2013-11-11)
- ·WordPress初级教程-9: WordPress用户设置/ Users(2013-11-11)
- ·WordPress初级教程-10: WordPress博客配置/ Settings(2013-11-11)
- ·关于wordpress上传图片不显示的原因(2013-11-11)
- ·WordPress程序的脆弱点你知道吗 (2013-11-11)
- ·总结八大Wordpress网站百度收录实现秒收的方法绝招 (2013-11-11)
- ·WordPress如何网站投稿者也可以上传图片(2014-03-18)
- ·WordPress怎么修改新用户注册邮件内容(2014-03-18)
- ·WordPress怎么添加前台注册功能(2014-03-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)