WordPress数据库接口分析之增改其他部分

一月 06
磊子 2012年 暂无评论

昨天为大家讲解了WordPress数据库接口分析之查询部分,今天为大家继续说下WordPress数据库接口分析之增改其他部分。

1.插入表行/列

在数据库表中插入一行/列内容。

示例

在一行中插入两列内容,第一个列的值为字符串,第二列的值为数字:

$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) )

可能的值:- %s 为字符串,- %d 为十进制数字,- %f 为浮点。

2.更新表行/列

更新数据库表中某行/列的内容。

示例

要更新一个表行,其ID为1,该行第一列中的值是一个字符串,第二列中的值是一个数字:

$wpdb->update( 'table', array( 'column1' => 'value1', 'column2' => 'value2' ), array( 'ID' => 1 ), array( '%s', '%d' ), array( '%d' ) )

3.保护查询防止SQL注入攻击

有时为了防止SQL注入攻击,在查询中的所有数据都需要经过SQL字符转义。可以通过prepare方法快速完成字符转义。

<?php $sql = $wpdb->prepare( 'query'[, value_parameter, value_parameter ... ] ); ?>

query

(字符串)希望执行的SQL查询,以 %s 与%d作为占位符。

value_parameter

(字符串)提交到占位符中的值。该值此时必须没有被SQL转义。

示例

//将metakey和metavalue 添加到ID为10的文章。

$metakey = "一个测试";
$metavalue = "测试的内容";

$wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->postmeta( post_id, meta_key, meta_value )VALUES ( %d, %s, %s )",10, $metakey, $metavalue ) );

注意,这时你无须担心引用字符串。不要直接将变量传递给SQL查询,可将 %s作为字符串的占位符, %d作为整数的占位符。你可以传递任意个值,每一个都可以作为prepare()方法的新参数。

4.显示/隐藏SQL错误

你可以用show_errors来显示SQL错误,也可以用hide_errors隐藏SQL错误。

<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>

同样也可以用print_error输出近期的查询所生成的错误。

<?php $wpdb->print_error(); ?>

5.获取数据库表中某列信息

利用get_col_info可以检索到近期查询的表列信息。当你不了解某个函数返回的对象的属性时,就可以通过get_col_info函数获取信息。该函数从指定列中输出所需信息,如果没有指定某列,则函数输出一个以查询结果中所有列的信息为内容的数组。

<?php $wpdb->get_col_info('type', offset); ?>

type

(字符串)你希望检索的信息。可能为以下任何值之一(摘自 ezSQL文档)。默认值为name。

  • name ——表列的名称。默认值
  • table ——列所属表格的表格名称
  • max_length —— 表列的最大长度
  • not_null —— 若表列不为Null则值为1
  • primary_key —— 若表列是一个主键,值为1
  • unique_key —— 若表列是唯一键,值为1
  • multiple_key —— 若表列是非唯一键,值为1
  • numeric —— 若表列是数值型,值为1
  • blob —— 若表列为BLOB,值为1
  • type —— 表列的类型
  • unsigned —— 若表列无符号,值为1
  • zerofill —— 若表列为zero-filled,值为1

offset

(整数)从某个检索信息的表中指定表列(0为表中第一列)。默认值为-1。

  • -1 —— 从所有表列中检索信息。输出一个数组。默认值。
  • 非负整数 —— 从指定的表列中检索信息(0为表中第一列)。

6.清除缓存

用flush清除SQL结果缓存。

<?php $wpdb->flush(); ?>

这会清除$wpdb->last_result、$wpdb->last_query以及$wpdb->col_info信息。

7.类变量

$show_errors

是否显示SQL错误信息。默认为TRUE。

$num_queries

已经被执行的查询次数

$last_query

最近一次已经被执行的查询

$queries

将SAVEQUERIES常量设为TRUE(该常量默认值为FALSE),可以保存所有数据库查询及其停止时间。如果SAVEQUERIES值为TRUE,你的查询会被作为数组保存在$queries变量中。

$last_result

最近一次查询结果。

$col_info

最近一次查询结果的表列信息。参见获取表列信息。

$insert_id

最近一次INSERT查询为AUTO_INCREMENT列生成的ID。

$num_rows

最近一次查询返回的行数。

8.WordPress数据库表

在wpdb类中可以引用WordPress数据库表。

$posts

关于文章的数据库表

$users

关于用户的数据库表

$comments

评论表

$links

链接表

$options

选项表

$postmeta

元数据(自定义字段)表

$usermate

usermeta表中含有用户的其它信息,如昵称、个人说明与权限。

$terms

terms表中包括对分类目录、链接分类、标签的“说明”(description)

$term_taxonomy

term_taxonomy表介绍了WordPress的不同分类(taxonomy)。分类目录、链接分类、标签都是一种分类。

$term_relationships

term_relationships表中含有术语以及使用术语的对象之间的链接,即该表可以指向日志所属的分类目录。

以上便是wordpress数据库接口的相关内容。也许会有落下的,不过这些内容加上一篇内容足够我们来学习掌握了,大家有时间可以了解下!

» 版权所有©转载必须以链接形式注明作者和原始出处:磊子的博客 » WordPress数据库接口分析之增改其他部分
» 地址:( Ctrl+C 复制 )
» 如果对本站感兴趣,请到网站右下方订阅本站,将为你带来更多精彩和实用的文章
» 如果您对这篇文章感兴趣,不妨小小的 捐助(Donate)一下博主吧,不管多少都是对博主最大的支持和鼓励哟,博主-磊子感谢大家的支持!!!

说点什么吧




订阅本站