wordpress的数据访问类wpdb研究1:类函数

by tant 28. 一月 2012 15:23

WordPress 使用的是一个数据库操作类: ezSQL wpdb类源代码

 ezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL、oracle8/9 、interbase、FireBird、PostgreSQL、MS-SQL、sqlite、sqlite C++)。 在你的脚本开头是要包含一个一个PHP文件。然后,你就可以使用更小、更容易的一套ezsql函数来代替标准的PHP数据库函数。 它会自动缓存的查询结果,提供了一系列简单的函数操作及扩展,并且没有造成额外的服务器开销 它具有优良的调试功能,使你快速的判断SQL语句的执行过程 ezsql函数可以返回的结果是对象,关联数组,或数值数组 它可以大大缩短开发时间,并在大多数情况下,将简化您的代码,让其跑得更快,以及很容易调试和优化您的数据库查询语句。  wordpress对ezsql进行了修改,同时也使其仅适用于mysql。

以下是主要函数的基本介绍 

function query($query) 这个函数是 WPDB 最基本的函数,$query 为 SQL 语句,提交给数据库查询,结果分二种情况:

1. 如果是 “insert|delete|update|replace”, 返回受影响行数,在 “insert|replace”的情况下,用 $this->insert_id 记录新插入的ID。

2. 如果是 “select”,用 $this->last_result 记下查询结果集,返回查询到的记录行数。

function escape($string) 使用反斜线引用字符串,即使用魔术引号。

function insert($table, $data) 这是插入记录函数,第一个参数是表的字段数组,第二个是数据数组。插入数据返回1,否则为0。

function update($table, $data, $where) 这是更新纪录函数,第一个参数是表的字段数组,第二个是数据数组,第三个是条件数组,它是一个 nane array。更新了为1,否则为0。

function get_var($query=null, $x = 0, $y = 0) 如果 $query 不为空,首先执行查询,然后返回第 X 列 Y 行的值。

function get_row($query = null, $output = OBJECT, $y = 0) 返回一行,$outpu 指定返回的类型,可以是 ARRAY_A,ARRAY_N 或者 OBJECT。$y 指定第几行。

function get_col($query = null , $x = 0) 返回一列,$x 指定第几列。

function get_results($query = null, $output = OBJECT) 返回查询结果集,可以以 ARRAY_A,ARRAY_N 或者 OBJECT 三种方式返回。

function get_col_info($info_type = 'name', $col_offset = -1) 返回字段信息。

这些函数对于一些基本的操作已经足够了,并且这是一个小类,对于资源占用和执行效率不会增加很大的开销。下篇开始分析每个函数的代码,准备向.net移植,做一个简单的。net数据库操作类。

Tags: ,

dotnet | tech

再说下百度分享是否影响排名

by tant 17. 一月 2012 10:52

google的+1是会影响排名的这个已经是可以确认了,最近百度在搜索结果也出现了一个小手,这个到底是否影响排名就成为了大家关注的焦点

这个百度分享的数字会不会影响搜索结果的排名,想必是很多站长关注的。如果我是百度PD,分享本身去看,还有很多原因不足以支持分享数影响排名,比如像机制的适应广度、作弊等等。所以目前来讲对排名的应该是不大的,因为分享的数据是可以轻松作弊的(我已经可以开刷了,哈),但如果这些分享都是真正的用户行为,也就是说各种情况都完全符合计算排名的条件后,这个分享应该还是会对排名产生效果的,但是这个时间点是未知的,只能看百度的PD的时间点了。但是要注意的一点就是分享数目前对排名影响不大,可是却是会完全影响到用户的点击的,用户看到100多个+1,点击率超过排名靠前的也是很有可能的。

另外,页面的url被分享到其他网站,其实就是页面的反向链接,当这些链接被搜索爬到并付权的时候,那么这些页面的排名就会因此而发生变化,这些链接可能被判定为用户主动行为,这样的链接可能被搜索引擎认为更有价值链接,说不定还会对分享的链接额外提权哦!这也就是所以为的SNS对SEO影响的一部分。

可以理解为:刷百度分享数字,目前来看意义不大。目前也就是和其他分享代码一样的功能:将页面链接真实的分享到其他社会化媒体去,对这些页面的排名起到帮助,因为这种链接分发的行为,使得这些被分发的链接更加自然和有意义。

当然了,如果你的网站上有分享到其他网站的代码,建议使用百度分享的,能+1就+1。虽然目前不会影响排名,但是是会影响到排名的点击率啊。再说了,这个代码也很方便,放谁的不是放么,以后万一要是真影响了呢,这不就赚大了么。

Tags: ,

internet | SEO

小米让我们再次的穿越了

by tant 12. 一月 2012 13:32

2012年1月30日,北京,早上9点,小米科技公司。 除了雷军和另一个创始人林斌,大部分人还没有到岗。这里的气氛与硅谷无异,“累了可以穿拖鞋、 上班不用打卡。”一出电梯,首先印入眼帘的是一个台式足球桌。午饭时间,你就能听到这里欢声雷动。

真相 可以狂点 这个连接 

 

 

还谈不上神一样的对手,但是猪一样的队友是没错了

Tags:

internet

百度也加1了?

by tant 10. 一月 2012 17:29

好吧,咱们开始刷吧

Tags:

SEO

wordpress的数据访问类wpdb研究1:介绍

by tant 10. 一月 2012 10:44

以前一直使用.net开发,因为IDE太好用了,vs2010应该是目前最好的IDE了没有之一,最近一直在弄php的脚本,因为php太简单了,而且普及率高,一般简单的应用就用php写好了,大型的还是需要.net。

我的php又时二把刀的功夫,也就能读懂代码,自己写的话可就麻烦了,所以想再从wordpress开始研究一下wordpress作为入门来说还是不错的选择,尤其时他对数据库的操作,我觉得还是有可借鉴之处,wordpress虽然没有使用ORM但是数据操作却十分的方便,ORM效率低灵活性差。包括微软的LINQ虽然使用简单,但是还是有一些缺陷,所以准备研究下wpdb类,移植到.net上面,这样数据库操作起来到是十分的方便。

wordpress提供了一个全局变量$wpdb来访问wordpress数据库,通过wpdb可以实现对数据库的各种操作。这里各种操作包括添加一个新表,查询,删除,更新等等。提供了处理用户自定义数据的接口。注意在调用的函数里面要全局化这个变量。通过这个变量可以访问数据库中的任何表,但是仅限于一个数据库,如果要访问多个数据库,需要重新实例化一个wpdb类。

这是官方的介绍,官方英文版见这里 

wpdb类包含多个关于数据库查询函数。

$ wpdb -> get_results(‘query’)

$wpdb->query(‘query’)

$wpdb->get_var(‘query’,column_offset,row_offset);

$wpdb->get_row(‘query’, output_type, row_offset);

$wpdb->get_col(‘query’,column_offset);

$wpdb->get_results(‘query’, output_type);

$wpdb->insert( $table, $data, $format );

$wpdb->update( $table, $data, $where, $format = null, $where_format = null );

$wpdb->prepare( ‘query’ [, value_parameter, value_parameter ... ] );

$wpdb->show_errors();

$wpdb->hide_errors();

$wpdb->print_error();

$wpdb->get_col_info(‘type’, offset);

$wpdb->flush();

这些方法看名字就知道他们是干什么用的,所以不多介绍,以后主要讲解他们的源代码 

Tags: ,

dotnet

百度不收录问题的研究

by tant 9. 一月 2012 11:29

百度自从09年改变算法以后,就经常回出现不收录的情况,相信很多人都遇到过,尤其是新站。

这个问题其实不应该算作问题,主要原因是百度加入了类似沙盒的机制,防止作弊的情况,所以新站没有权重的话收录会比较慢。

要解决百度不收录的问题,首先要了解搜索引擎机制:

搜索引擎引擎简单的概括可以分为抓取,索引,展现三个部分。

抓取:蜘蛛访问网页分析网页的内容

索引:将抓取的网页内容, 存入数据库中(当然没这么简单,这里只是为了描述方便)

展现:通过用户搜索的关键词显示结果列表

 

百度不收录也是分很几种情况,下面分别叙述

不抓取:查看每天服务器的访问日志,主要看百度蜘蛛访问了那些页面,如果访问了robots后就不在抓取了,说明robots写的有问题,如果robots返回404后不在抓取了,也说明有这个问题,要放一个robots上去,保证返回状态码200。

还有一种不抓取的情况是蜘蛛只访问首页,这种情况时因为网站权重低,适当去做一些连接就可以了,引下蜘蛛就ok了

抓取不收录:查看服务器日志,百度蜘蛛抓取,但是不收录却不增加,这个是最麻烦的事情,有许多的原因

网站权重低:这个最简单了,做几个高质量的连接就可以了,这个体现在网站首页的快照每周才会更新

网站有一些百度禁止的内容:这个主要包括,淘宝客,ggad,等等,原因你们懂的

网站内容重复:这也是一些淘宝客被禁的原因,因为重复度太高了

以上2情况的体现是百度的首页快照基本2-3天甚至每天都在更新,但是就是不收录其他页面,这种情况解决起来最麻烦,也最复杂。 

 

Tags:

SEO

BlogEngine.NET中文别名转换全拼插件

by tant 3. 一月 2012 15:36

BlogEngine.NET 虽然有本地的语言包,但是别名url方面还支持的不够好,会把中文直接编码后直接使用,好在可以自己写插件

今天花了1小时写了一个通过Microsoft Visual Studio International Pack 1.0将文章标题自动转换成拼音全拼的插件这样url就好看多了

安装:

  • 复制bin目录文件到到网站bin目录下
  • 复制Chinese2PY.cs到App_Code\Extensions 目录下。在控制面板里面的插件管理启用即可。

说明:

  • 如果别名中包含中文则自动转换,唯一的缺点多音字无法判断,只能用第一个,没办法,谁让中文博大精深呢
  • demo就是我这个博客了,效果还是不错的

 

Chinese2PY.zip (240.99 kb)

Tags: , ,

dotnet | SEO | tech

2012新的起点

by tant 1. 一月 2012 12:58

2011过去了,2012来了,还有不到一年的时间了

最后努力一下吧,今年的目标如下

  • 英文站ip10万每天
  • 中文站群要抢占百度第一页
  • 把工具进行产品化 
  • 此博客保持2-3篇每周的更新频率

今年的冬至就知道结果了,希望还能看到冬至以后的太阳

最后许愿,google 赶紧收录吧,不能老掉啊 

 

Tags:

internet | other | SEO

2011年最后一天了

by tant 31. 十二月 2011 10:42

祝大家新年快乐

明年要开始加油了 

Tags:

other

重新建博客,以后会经常更新

by tant 30. 十二月 2011 15:23

blogengine 已经很成熟了以后就用他吧,感觉还是不错的

Tags:

other

关于我

归档

朋友和推荐

博易 - 中文的BlogEngine.NET

BlogEngine.NET - BlogEngine.NET英文官网

Mads Kristensen - BlogEngine.NET默认主题

安卓APK下载 - 一个下载安卓应用的网站