一、使用数据库方法之前应该做的事

1.1.加载类

1.1.1.如果是wordpress内置的模板文件的话,直接申明全局变量$wpdb;然后就可以使用该全局变量上的方法。

1.1.2.如果是自定义的php文件的话,需要先加载类,然后再申明全局变量$wpdb;

//定义当前文件相对于wp-blog-header.php文件的路径。
//如果当前文件在插件目录里的文件夹的话,wp-blog-header.php相对路径如下:
define('PATH', dirname(dirname(dirname(dirname(__FILE__))) . '\\'));
//加载wp-blog-header.php文件,也就加载了wpdb类
require_once(PATH . '\wp-blog-header.php');
//申明全局变量
global $wpdb;

1.2.创建数据库表

1.2.1.下面创建名称为(前缀slider)的数据库表,有id,name,description三个数据。

//申明全局变量$wpdb;
global $wpdb;
//准备sql语句
$sql = "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}slider` (
			`id` int(11) NOT NULL auto_increment COMMENT '编号',
			`name` varchar(30) DEFAULT '' COMMENT '名称',
			`description` varchar(100)  DEFAULT '' COMMENT '描述',    
			PRIMARY KEY (`id`)   			
		) DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;";
//用变量$wpdb的方法query执行sql语句
$wpdb->query($sql)

1.2.2.$wpdb->prefix  表示该数据库的表前缀;

1.2.3.$wpdb->query($sql)  表示执行$sql查询语句;

1.2.4.在数据库中查看,wp_slider表已创建成功;

二、给数据库表插入(增)或修改(改)或删除(删)数据

2.1.增加数据:$wpdb->insert()

2.1.1.含义:表示给数据库表末行插入一行数据

2.1.2.语法:$wpdb->insert($table, $data);$table表示数据库表名称,$data表示给表中添加的数据

2.1.3.$wpdb->insert_id 表示上一条添加数据的ID值。

2.1.4.代码如下。

//接着上面的继续写
//给数据库表slider中准备数据$data,
$data = array('name' => 'slider1', 'description'=>'首页轮播图');
//给数据库表slider中添加数据$data.
$wpdb->insert("{$wpdb->prefix}slider", $data);
//查询插入数据库的ID值。
echo $wpdb->insert_id;

2.1.5.在数据库中查看表数据,如下图

2.2.$wpdb->update($table, $data, $where)

2.2.1.含义:表示如果数据库中没有该数据时,添加该数据,如果有,则更改数据库表中的数据

2.2.2.语法:$table表示数据库表名称,$data表示给表中添加的数据,$where表示更新的数据的指定条件

2.2.3.含义:表示给数据库表末行插入一条数据

2.2.4.案例代码

//接着上面的继续写
//给数据库表slider中准备数据$data,
$data = array('name' => 'slider2', 'description'=>'分类页轮播图');
//给数据库表slider中添加数据$data.
$wpdb->update("{$wpdb->prefix}slider", $data, array('id' => 1));

2.2.5.数据已被更改,查看数据库里的数据变化如下图

更新前

更新后

2.3.删除数据:$wpdb->query($sql)

2.3.1.含义:执行sql删除语句,删除数据库表中的数据。

2.3.2.语法:$wpdb->query($sql);$sql表示数据库sql语句。

2.3.3.删除sql语句:”DELETE FROM"  . $wpdb->prefix . "xs  WHERE  `xq` = ‘wordpress'”

2.3.4.代码如下。

//接着上面的继续写
//准备sql语句,
$sql = "DELETE FROM `" . $wpdb->prefix . "slider` WHERE `id` = 1"; 
//给数据库表slider中添加数据$data. 
$wpdb->query($sql);
//查询删除的行数。
$row_count = $wpdb->get_var('SELECT ROW_COUNT()');
echo "<br>";
echo $row_count;

2.1.5.在数据库中查看表数据,如下图

删除前

删除后

三、查看数据库内容

3.1.获取单个数据:$wpdb->get_var()

3.1.1.含义:检索数据库表中的某一个值。

3.1.2.语法:$wpdb->get_var($sql, $column_offset, $row_offset);$sql表示sql查询语句,$column_offset表示表中第($column_offset-1)列的值。$row_offset表示表中($row_offset-1)行的值。

3.1.3.$column_offset默认值为0,$row_offset默认值为0。也就是说默认查的值为第一行第一列的值。

3.1.4.代码如下。

// 查找id=2的name值。
$name = $wpdb->get_var('SELECT `name` FROM `' . $wpdb->prefix . 'slider` WHERE `id` = 2');
echo $name;
echo "<br>";
// 查找id=2这一行中的第2列的数据
$data = $wpdb->get_var('SELECT * FROM `' . $wpdb->prefix . 'slider` WHERE `id` = 2', 1);
echo $data;
echo "<br>";
//查找第二列,第二行的数据
$data = $wpdb->get_var('SELECT * FROM `' . $wpdb->prefix . 'slider`', 1, 1);
echo $data;
echo "<br>";
//查询到的行数(查询行为影响到的行数)。 
$row_count = $wpdb->get_var('SELECT ROW_COUNT()'); 
echo "<br>"; echo $row_count;

3.1.5. $wpdb->get_var(‘SELECT ROW_COUNT()’)表示上一个sql语句影响到的行数。

3.1.6.结果如下。

数据库表

代码显示结果

3.2.获取单行数据:$wpdb->get_row()

3.2.1.含义:检索据库表中某一行数据

3.2.2.语法:$wpdb->insert($sql, $output, $row_offset);$sql表示sql查询语句,$output表示返回值的类型,$row_offset表示表中第($row_offset-1)行的数据。

3.2.3.$output值可以是数组类型ARRAY_A, or ARRAY_N,也可以是对象类型OBJECT。默认值为对象。$row_offset默认值为0,是第一行的意思

3.2.4.代码如下。

/*
查找单行数据值
*/
// 获取第一行的数据
$row = $wpdb->get_row("SELECT * FROM `" . $wpdb->prefix ."slider`", ARRAY_A);
echo "<pre>";
print_r($rows);
echo "</pre>";
// 获取第二行的数据,参数1表示第2行
$row = $wpdb->get_row("SELECT * FROM `" . $wpdb->prefix ."slider`", ARRAY_A, 1);
echo "<pre>";
print_r($rows);
echo "</pre>";

3.2.5.代码查询结果

数据库表数据

代码查询结果

3.3.获取多行数据:$wpdb->get_results()

3.3.1.含义:检索数据库表多行数据。

3.3.2.语法:$wpdb->insert($sql, $output);$sql表示sql查询语句,$output表示返回值的类型。

3.3.3.$output值可以是数组类型ARRAY_A, or ARRAY_N,也可以是对象类型OBJECT。

3.3.4.代码如下

/*
查找多行数据值
*/
$rows = $wpdb->get_results("SELECT * FROM `" . $wpdb->prefix ."slider`", ARRAY_A);
echo "<pre>";
print_r($rows);
echo "</pre>";

3.3.5.结果如下图

数据库表数据

查寻打印结果

博主联系方式:

  • 微信:34419369
  • QQ: 34419369
  • 公众号:前方录
  • 有什么不懂的地方欢迎联系我,帮到你是我会很开心

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注