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 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
php数组中包含中文的排序方法
Jun 03 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
php动态绑定变量的用法
Jun 16 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
php对接java现实加签验签的实例
Nov 25 PHP
PHP精确计算功能示例
Nov 29 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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 similar_text 字符串的相似性比较函数
2010/05/26 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
javascript中创建对象的三种常用方法
2010/12/30 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Python定时器实例代码
2017/11/01 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
python无序链表删除重复项的方法
2020/01/17 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
北大青鸟学生求职信
2013/09/24 职场文书
证券期货行业个人的自我评价
2013/12/26 职场文书
公司员工活动策划方案
2014/08/20 职场文书
三好生演讲稿
2014/09/12 职场文书
昆虫记读书笔记
2015/06/26 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python