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的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
Linux安装配置php环境的方法
Jan 14 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP对象相关知识总结
Apr 09 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
php+websocket 实现的聊天室功能详解
May 27 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Django权限机制实现代码详解
2018/02/05 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
用Python读取几十万行文本数据
2018/12/24 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
护理毕业生自我鉴定
2014/02/11 职场文书
软件项目实施计划书
2014/05/02 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
自主招生自荐信格式
2015/03/04 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
小学班级标语口号大全
2015/12/26 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python