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)一下博主吧,不管多少都是对博主最大的支持和鼓励哟,博主-磊子感谢大家的支持!!!

说点什么吧




wireless earbuds moscow mule mugs bluetooth speakers waterproof camera best wireless earbuds best vacuum cleaner best drugstore foundation best dishwasher best waist trainer wireless headphones best vacuum 0594918 best bluetooth earbuds waterproof bluetooth speaker tattoo cover up action camera
订阅本站