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编程之高级技巧——利用Mysql函数
Oct 09 PHP
加速XP搜索功能堪比vista
Mar 22 PHP
Discuz 模板引擎的封装类代码
Jul 18 PHP
PHP array 的加法操作代码
Jul 24 PHP
php抓取页面的几种方法详解
Jun 17 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php实现留言板功能(会话控制)
May 23 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
PHP中echo与print区别点整理
Mar 09 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中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
YII路径的用法总结
2014/07/09 PHP
php四种定界符详解
2017/02/16 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
python中as用法实例分析
2015/04/30 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python爬虫之遍历单个域名
2019/11/20 Python
python 5个实用的技巧
2020/09/27 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
《童年》教学反思
2014/02/18 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
五水共治一句话承诺
2014/05/30 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript