MongoDB PHP API 及用法

2011年02月10号
没有评论 1,442次浏览
  1. <?php   
  2.  $m = new Mongo();      //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如                   192.168.0.4:27017,如果端口是27017,端口可以省略   
  3.   
  4. $db = $m -> comedy;             // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB(“comedy”);   
  5.   
  6. $collection = $db->collection;  //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用   
  7. $db->selectCollection(“collection”);   
  8. /*********添加一个元素**************/  
  9. $obj = array( ”title” => ”Calvin and Hobbes”, ”author” => ”Bill Watterson” );   
  10.   
  11. $collection->insert($obj);     //将$obj 添加到$collection 集合中   
  12.   
  13. /*********添加另一个元素**************/   阅读全文
类别数据库 标签

MongoDB安装及使用

2011年02月10号
没有评论 1,639次浏览

mongodb由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalable, high-performance, open source, schema-free, document-oriented database。MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。

  阅读全文

类别数据库 标签

jQuery 动态生成或者随意删除一个tr

2011年01月21号
没有评论 2,334次浏览

<script type=”text/javascript”>
//动态添加一个tr
var val = “我自动填入到 input 对象” ;
function addTr(){
$(“#table2″).append(“<tr> <td colspan=\”1\” width=\”10% px\” nowrap=\”nowrap\” align=\”center\” class=\”table_text\”><input type=\”text\” id=\”\” value=\”\”+val+\”\” name=\”d\” /></td><td><button value=\”删除\” onclick=\”deleteTr(this);\” /></td></tr>”);

}
function deleteTr(btn){
//这里删除代码 因为那里会传一个 object 进来
$(btn).parent().parent().remove();
}
</script>

阅读全文

类别PHP 标签,

jquery取radio,checkbox,select的值

2011年01月21号
没有评论 2,385次浏览

获取一组radio被选中项的值
var item = $(‘input[@name=items][@checked]‘).val();

$selectedvalue = $(“input[name=‘rl$tt‘]:checked”).val();
获取select被选中项的文本
var item = $(“select[@name=items] option[@selected]“).text();

package_name = $(“select[name=package_list] option[selected]“).text();
select下拉框的第二个元素为当前选中值
$(‘#select_id‘)[0].selectedindex = 1;
radio单选组的第二个元素为当前选中值
$(‘input[@name=items]‘).get(1).checked = true; 阅读全文

类别PHP 标签,

MySQL DISTINCT 的基本实现原理

2011年01月20号
1条评论 2,195次浏览

DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别。同样可以通过松散索引扫描或者是紧凑索引扫描来实现,当然,在无法仅仅使用索引即能完成 DISTINCT 的时候,MySQL 只能通过临时表来完成。但是,和 GROUP BY 有一点差别的是,DISTINCT 并不需要进行排序。也就是说,在仅仅只是 DISTINCT 操作的 Query 如果无法仅仅利用索引完成操作的时候,MySQL 会利用临时表来做一次数据的“缓存”,但是不会对临时表中的数据进行 filesort 操作。当然,如果我们在进行 DISTINCT 的时候还使用了 GROUP BY 并进行了分组,并使用了类似于 MAX 之类的聚合函数操作,就无法避免 filesort 了。 阅读全文

类别数据库 标签

Mysql中count(*),DISTINCT的使用方法和效率研究

2011年01月20号
没有评论 2,222次浏览

在处理一个大数据量数据库的时候
突然发现mysql对于count(*)的不同处理会造成不同的结果

比如执行
SELECT count(*) FROM tablename
即使对于千万级别的数据mysql也能非常迅速的返回结果
而对于
SELECT count(*) FROM tablename WHERE…..
mysql的查询时间开始攀升 阅读全文

类别数据库 标签

PHP 文件上传源码分析(RFC1867)

2011年01月05号
8条评论 2,345次浏览

文件上传,一般分为俩种方式 FTP 和 HTTP, 对于我们的互联网应用来说: FTP上传虽然传输稳定, 但是易用性和安全性都是个问题. 你总不至于在用户要上传头像的时候告诉用户”请打开FTP客户端,上传文件到http://www.laruence.com/uploads/中, 并以2dk433423l.jpg命名” 吧?

而基于 HTTP 的上传,相对来说易用性和安全性上就比 FTP 要增强了很多. 可以应用的上传方式有 PUT, WEBDAV, 和 RFC1867 三种, 本文将分析在 PHP 中,是如何基于 RFC1867 实现文件上传的.

RFC1867

RCF1867 是 Form-based File Upload in HTML 标准协议, RFC1867 标准对 HTML 做出了两处修改: 阅读全文

类别PHP 标签

关于PHP对文件元信息的缓存

2011年01月05号
1条评论 2,031次浏览

今天在测试 SAE (Sina App Engine) 的Memcache Wrapper 时发现,PHP会在同一个页面的执行过程中对文件的元信息进行缓存。

根据PHP文档对 clearstatcache() 这个方法的说明得知:
在使用 stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype(), 或 fileperms() 方法查询文件信息时,PHP会将文件的stat的缓存以提高性能。 clearstatcache()方法可以用来清除这个缓存。另外unlink()会自动清除stat缓存。

例如以下一段程序: 阅读全文

类别PHP 标签