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 相关文章推荐
利用static实现表格的颜色隔行显示
Oct 09 PHP
AJAX for PHP简单表数据查询实例
Jan 02 PHP
PHP Ajax实现页面无刷新发表评论
Jan 02 PHP
php,ajax实现分页
Mar 27 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
PHP批量删除jQuery操作
Jul 23 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 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脚本代码
2011/02/19 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
如何在PHP中生成随机数
2020/06/04 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
javascript实现yield的方法
2013/11/06 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
python实现批量修改文件名
2020/03/23 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
python3判断IP地址的方法
2021/03/04 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
异常和异常类的概念
2014/09/12 面试题
教师演讲稿范文
2014/01/08 职场文书
中学教师教育感言
2014/02/21 职场文书
进步之星获奖感言
2014/02/22 职场文书
求职自荐信怎么写
2015/03/04 职场文书
召开会议通知范文
2015/04/15 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python