任何系统都离不开数据库,用到数据库存就有sql查询语句 ,wordpress也不例外; 今天我们就来简单的介绍一下在wordpress中直接执行sql查询语句的一些方法。
参考: https://www.glenlau.cn/wordpress-sql.html
使用环境
使用wordpress的时候,如果想直接使用WP里封装的数据库操作的类(wp-db.php),将 wp-blog-header.php 或者 wp-load.php 包含到代码中就可以使用了。WordPress提供了一个类的操作数据库存的全局变量叫$wpdb,通过这个全局变量来与WordPress数据库进行关联,所以我们在使用之前,需要先定义下这个全局变量,写法如下:
<?php
require_once __DIR__ . '/wp-load.php';
global $wpdb;
global $table_prefix; //获取表前缀
?>
1、query() 执行原生sql语句
主要用于执行统计、更改、插入、删除等SQL查询,返回影响记录的条数 (int)。通常不用于查询,如果用于执行Select查询只返回查询的结果数。
$res = $wpdb->query("DELETE FROM $wpdb->posts WHERE id = '13' ");
var_dump($res);
返回int(1)
2、get_row(query)方法获取一行记录
主要用户获取一行数据,该函数可将行作为对象、关联数组或数值索引数组返回。如果查询返回了多个行,函数只返回第一行。
语法:$wpdb->get_row('query' [, output_type] [,row_offset]);
$query = "select * from {$table_prefix}article_cn where id = 320";
$res = $wpdb->get_row($query); //默认返回对象
echo $res->post_title; //获取标题
$res = $wpdb->get_row($query, ARRAY_A); //返回一维关联数组
默认第二参数值为OBJECT ,返回对象,
其他两个值:
ARRAY_A (常用)——返回的结果以关联数组形式输出,(一维数组)
ARRAY_N —— 返回的结果以数值索引数组形式输出(一维数组)
第三参数:row_offset(整数)预计的数据库表的行数(0为表中第一行)。默认值为0
3、get_results() -- 获取多行记录集
查询结果集,get_results 函数可以从数据库中抽取函数生成的多行结果。$wpdb 函数以数组形式返回整个查询结果。
语法:$wpdb->get_results('query', output_type);
output_type 三个预定义的常量之一,默认值为 OBJECT; OBJECT —— 以对象形式输出返回的结果; ARRAY_A ——以关联数组形式输出返回的结果; ARRAY_N —— 以数值索引数组形式输出返回的结果。
例:
$query = "SELECT id, guid, post_type, post_mime_type FROM `yes_posts` WHERE post_type= 'attachment' AND post_mime_type = 'image/png';";
$info = $wpdb->get_results($query,ARRAY_A);
4、insert( ) 插入记录
$res = $wpdb->insert("{$table_prefix}translate", $data);
//$last_id = $wpdb->insert_id;
//成功返回影响记录的条数int(1)
//失败返回bool(false)
5、update() 更新记录
$data['status_uk'] = 2;
$data['translate_uk_time'] = $translate_time;
$res = $wpdb->update("{$table_prefix}article_cn", $data, ['id'=>$article_cn_id]);
返回更新的记录条数,如果修改的字段没有一个新的,则返回0
4、get_col函数
要选择数据库表中的一列内容,可使用get_col函数。 返回指定列的 索引数组
$wpdb->get_col('query',column_offset);
参数:column_offset(整数)如果查询的是多个列,此可以定义,显示第几列,如值为2,表示显示第3列。(0为表中第一列)。默认值为0。
例:获取word_id = 5 的所有数据的 管理category_id
$queryCate = "SELECT category_id FROM `yes_word_to_category` WHERE word_id = 5";
$idArr = $wpdb->get_col($queryCate);
pr($idArr);
返回一维数组:
例:
$query = "SELECT id, guid, post_type, post_mime_type FROM `yes_posts` WHERE post_type= 'attachment' AND post_mime_type = 'image/png';";
$info = $wpdb->get_col($query);
5、get_var() 函数
如果要选择一个变量,可以使用 get_var 函数返回一个来自数据库的变量。但只返回一个变量,如果没有查询结果,则返回NULL。
$wpdb->get_var('query',column_offset,row_offset);
$user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->users;"));
echo '<p>用户一共有 ' . $user_count . '人</p>';
*/
WordPress后台添加侧边栏菜单
https://www.ludou.org/add-admin-menu-in-wordpress.html