wordpress直接操作数据库的方法
发布:smiling 来源: PHP粉丝网 添加日期:2018-11-28 22:12:43 浏览: 评论:0
wordpress占据全球40%的网站地位,是世界上使用最活跃的内容管理系统(CRM)。学习成本低,社区活跃等特点使他一直成为草根站长最喜爱的内容管理系统。
wordpress本身由于其强大的功能,让非常多的程序员直接在其之上开发功能强大的系统,比如商城系统,以及一些负责的管理系统。
但是由于wordpress最初就是定位于博客系统,其数据库结构设计的非常的简单,基本上所有的复杂类型数据都只能已文章的形式展示出来。如果数据量大。wordpress那原本的数据表结构就会显得非常不合理。因此默认的wordpress结构原本也不适合百万级别的大数据管理。
如果用户想使用wordpress作为框架开发系统,建议复杂的数据类型全部采用自己建立数据库的方式处理,wordpress有完善的数据库函数,下面我就来介绍一下相关的几个函数。
一、sql语句处理,防止sql注入攻击。
$sql = $wpdb -> prepare("query",[%d,%d,%s])
例如:
$sql = $wpdb -> prepare("SELECT * FROM `user` WHERE `username` = %s AND `password` = %s", $username, $password);
用这种方式,函数可以判断$username与$password是否是纯参数,不能作为执行语句处理。
二、获取单一数据,在一般sql语句就只返回一个数值时使用。
$var = $wpdb -> get_var("query");
例如:
$var = $wpdb -> get_var("SELECT count(*) FROM `user`");
这个函数直接返回值,可以直接使用。
注:其实get_var并不是仅仅只能用于就返回一个数值的sql语句,而是他默认只返回第一行最左边的元素。如果希望他返回其他元素,可以使用get_var("query", x, y)来实现。
三、获取一行数据,在一般sql语句就只返回特定对象时使用。
$sql = $wpdb -> get_row("query", output_type);
例如:
$var = $wpdb -> get_row("SELECT * FROM `user` WHERE `userid` = 1", ARRAY_A);
output_type:三个预定义的常量之一。默认值为OBJECT。
OBJECT —— 返回的结果以对象形式输出
ARRAY_A ——返回的结果以关联数组形式输出
ARRAY_N —— 返回的结果以数值索引数组形式输出
我通常使用OBJECT或是ARRAY_A,访问方式分别为$var -> username(output_type为OBJECT时)或是$var["username"](output_type为ARRAY_A时)
注:其实get_row并不是仅仅只能用于就返回一行的sql语句,而是他默认只返回第一行的集合。如果希望他返回其他行,可以使用get_row("query", output_type, y)来实现。
四、获取一列数据,在一般sql语句就只返回特定属性时使用。
$sql = $wpdb -> get_col("query");
例如:
$var = $wpdb -> get_col("SELECT `age` FROM `user`);
返回的结果以数值索引数组形式输出,一般通过foreach函数分离,或是直接使用$var[1]这样的方式获取。
注:其实get_col并不是仅仅只能用于就返回一列的sql语句,而是他默认只返回第一列的集合。如果希望他返回其他列,可以使用get_col("query", x)来实现。
五、获取多列数据,在一般sql语句就只返回特定属性时使用。
$sql = $wpdb -> get_results("query", output_type);
例如:
$vars = $wpdb -> get_results("SELECT * FROM `user`, ARRAY_A);
返回的结果以数值索引数组形式包其他形式输出,一般通过foreach函数分离,或是直接使用$var[1]这样的方式获取。获取的对象受第二个参数控制
output_type:三个预定义的常量之一。默认值为OBJECT。
OBJECT —— 返回的结果以对象形式输出
ARRAY_A ——返回的结果以关联数组形式输出
ARRAY_N —— 返回的结果以数值索引数组形式输出
我通常使用OBJECT或是ARRAY_A,访问方式分别为$var -> username(output_type为OBJECT时)或是$var["username"](output_type为ARRAY_A时)
例如
- foreach($vars as $var) {
- echo $var["username"];//output_type是ARRAY_A时
- }
五、插入新数据
$id = $wpdb -> insert("table_name", array(), array(%s, %d));
例如:
$id = $wpdb -> insert("table_name", array("username" => $username,"password" => $password, "age" => $age), array("%s", "%s", "%d"));
第一个参数是将要写入的数据以数组形式插入。第二个参数是申明插入的数据类型,同时也有一定的反sql注入式攻击的效果。返回值为新建的那条数据的主键。
六、更新新数据
$id = $wpdb -> update("table_name", array(), array(),array(%s, %d), array(%s, %d));
例如:
$id = $wpdb -> update("table_name", array("username" => $username, "password" => $password, "age" => $age), array("ID" => $ID), array("%s", "%s", "%d"), array("%d"));
第一个参数是将要写入的数据以数组形式插入。第二个参数是过滤条件,也就是sql语句中where后的参数。第三个参数是要更新数据的数据类型,第四个参数是过滤条件的数据类型。返回值为更新的那条数据的主键。
七、删除数据
$id = $wpdb -> delete("table_name", array(), array(%s, %d));
例如:
$id = $wpdb -> update("table_name", array("ID" => $ID), array("%d"));
第一个参数是过滤条件,也就是sql语句中where后的参数。第二个参数是过滤条件的数据类型。返回值为删除的数目。
通过上述函数直接对数据库操作,可以大大提高系统的运行速度,让wordpress也适合开发大型系统。
Tags: wordpress 操作数据库
相关文章
- ·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)