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随机数生成代码与使用实例分析
Apr 08 PHP
php继承的一个应用
Sep 06 PHP
apache mysql php 源码编译使用方法
May 03 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
学习php设计模式 php实现单例模式(singleton)
Dec 07 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
python实现图片彩色转化为素描
2019/01/15 Python
python numpy 按行归一化的实例
2019/01/21 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
python多线程分块读取文件
2019/08/29 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
PHP使用QR Code生成二维码实例
2021/07/07 PHP