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生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php中strtotime函数用法详解
Nov 15 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
php比较相似字符串的方法
Jun 05 PHP
ThinkPHP实现递归无级分类――代码少
Jul 29 PHP
php判断当前操作系统类型
Oct 28 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
介绍Python的@property装饰器的用法
2015/04/28 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
python线程池如何使用
2020/05/28 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
个人授权委托书模板
2014/09/14 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
个人创业事迹材料
2014/12/30 职场文书
大四学生个人总结
2015/02/15 职场文书
2015年维修工作总结
2015/04/25 职场文书
政审证明材料
2015/06/19 职场文书
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技