PHP与MongoDB简介|安全|M+PHP应用实例详解


Posted in PHP onJune 17, 2013

一、MongoDB简介
MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:

•面向文档存储(类JSON数据模式简单而强大)
•动态查询
•全索引支持,扩展到内部对象和内嵌数组
•查询记录分析
•快速,就地更新
•高效存储二进制大对象 (比如照片和视频)
•复制和故障切换支持
•Auto-Sharding自动分片支持云级扩展性
•MapReduce 支持复杂聚合
•商业支持,培训和咨询

二、安装MongoDB
安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址:http://www.mongodb.org/downloads, 本文为windows平台,MongoDB运行命令:>bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:\data\db),当然你也可以修改成不同目录,只需要指定 --dbpath 参数,eg:
>bin/mongod --dbpath=d:\mgdata\db

三、安装MongoDB PHP扩展
根据自己的PHP版本下载PHP扩展:http://github.com/mongodb/mongo-php-driver/downloads,提示:
1、VC6适合Apache、VC9适合IIS;
2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。
修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。

四、PHP测试与MongoDB的相关示例
1、连接Mongo服务器

<?php 
//连接localhost:27017 
$conn = new Mongo(); 
//连接远程主机默认端口 
$conn = new Mongo('test.com'); 
//连接远程主机22011端口 
$conn = new Mongo('test.com:22011'); 
//MongoDB有用户名密码 
$conn = new Mongo("mongodb://${username}:${password}@localhost") 
//MongoDB有用户名密码并指定数据库blog 
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog"); 
//多个服务器 
$conn = new Mongo("mongodb://localhost:27017,localhost:27018"); 
?>

<?php 
//连接localhost:27017 
$conn = new Mongo(); 
//连接远程主机默认端口 
$conn = new Mongo('test.com'); 
//连接远程主机22011端口 
$conn = new Mongo('test.com:22011'); 
//MongoDB有用户名密码 
$conn = new Mongo("mongodb://${username}:${password}@localhost") 
//MongoDB有用户名密码并指定数据库blog 
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog"); 
//多个服务器 
$conn = new Mongo("mongodb://localhost:27017,localhost:27018"); 
?>

2、指定数据库和数据集名(表名)
<?php 
//选择数据库blog 
$db = $conn->blog; 
//制定结果集(表名:users) 
$collection = $db->users; 
?>

<?php 
//选择数据库blog 
$db = $conn->blog; 
//制定结果集(表名:users) 
$collection = $db->users; 
?>

3、CRUD
<?php 
//新增 
$user = array('name' => 'caleng', 'email' => 'admin@admin.com'); 
$collection->insert($user); 
//修改 
$newdata = array('$set' => array("email" => "test@test.com")); 
$collection->update(array("name" => "caleng"), $newdata); 
//删除 
$collection->remove(array('name'=>'caleng'), array("justOne" => true)); 
//查找 
$cursor = $collection->find(); 
var_dump($cursor); 
//查找一条 
$user = $collection->findOne(array('name' => 'caleng'), array('email')); 
var_dump($user); 
?>

<?php 
//新增 
$user = array('name' => 'caleng', 'email' => 'admin@admin.com'); 
$collection->insert($user); 
//修改 
$newdata = array('$set' => array("email" => "test@test.com")); 
$collection->update(array("name" => "caleng"), $newdata); 
//删除 
$collection->remove(array('name'=>'caleng'), array("justOne" => true)); 
//查找 
$cursor = $collection->find(); 
var_dump($cursor); 
//查找一条 
$user = $collection->findOne(array('name' => 'caleng'), array('email')); 
var_dump($user); 
?>

4、关闭连接
<?php 
$conn->close(); 
?>
PHP 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
谈谈PHP语法(4)
Oct 09 PHP
php5编程中的异常处理详细方法介绍
Jul 29 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
php银联网页支付实现方法
Mar 04 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 #PHP
php 模拟POST提交的2种方法详解
Jun 17 #PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 #PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 #PHP
深入PHP curl参数的详解
Jun 17 #PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 #PHP
PHP中array_merge和array相加的区别分析
Jun 17 #PHP
You might like
PHP获取MAC地址的函数代码
2011/09/11 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
PHP闭包实例解析
2014/09/08 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
JavaScript类库D
2010/10/24 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
删除节点的jquery代码
2014/01/13 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Python3实现定时任务的四种方式
2019/06/03 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
Django中ORM的基本使用教程
2020/12/22 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
学校后勤人员职责
2013/12/27 职场文书
我未来的职业规划范文
2014/01/11 职场文书
银行存款证明样本
2014/01/17 职场文书
教师党性分析材料
2014/02/04 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers