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+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
PHP中new static()与new self()的比较
Aug 19 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
使用laravel指定日志文件记录任意日志
Oct 17 PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 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学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
destoon之一键登录设置
2014/06/21 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
基于jQuery的js分页代码
2010/06/10 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
python中redis的安装和使用
2016/12/04 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
python实现决策树分类算法
2017/12/21 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
python如何求解两数的最大公约数
2018/09/27 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
python缩进长度是否统一
2020/08/02 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
百联网上商城:i百联
2017/01/28 全球购物
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
幼儿园师德演讲稿
2014/05/06 职场文书
企业宣传工作方案
2014/06/02 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
毕业设计致谢词
2015/05/14 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript