第六部分 PHP实例
第六部分 实战篇
想在PHP中调用Mongo需要安装MongoDB的PHP扩展
1) 首先下载最新的php mongodb扩展源码,源码可以在http://pecl.php.net/paclcage/mongo下载
2) 解压
wget http://pecl.php.net/paclcage/mongo
tar zxf mongo-1.2.6.tgz
ch mongo-1.2.6
3) 进入文件夹后,运行phpize来准备编译扩展的环境
/usr/local/php/bin/phpize
4) 运行后,我们运行./configure脚本来进行配置
./cinfigure --with-php-config=/usr/local/php/bin/php-config
--with-php-config这个参数是告诉配置脚本php-config这个程序的路径
5)这里用make来编译扩展
make && make install
正确编译数据结果
完成后,请编辑你的php.ini文件增加一行
extension=mongo.so
一般默认的编译php.ini文件/usr/local/php/etc/php.ini
重启Apache打开phpinfo
看到mongo 模块,主证明MongoDB的php扩展安装成功
这块安装配置在服务器上太慢了,网慢哦,等虚拟机弄起来在弄吧
给php打mongo模块
(1): 执行 /usr/local/php/bin/phpize
(2): ./configure --with-php-config=/usr/local/php/bin/php-cinfig --enable-mongo
(3): 在php.ini中添加上mongo.os加上去
(4): 重载apache
后面讲这种弄不懂样,多看看他们的视频吧
在php的mongo扩展中,提供了四类接口(对象):
1 针对mongoDB连接的操作:Mongo
2 针对mongoDB中数据库的操作: MongoDB
3 针对MongoDB中collection的操作: MongoCollection
4 针对查询结果集的操作:MongoCursor
1 连接Mongo服务器
$db->close();
连接数据库:
<?php
$conn = new Mongo("mongodb://user1:123456@localhost:27017/test");
$db = $conn->test;
?>
查询数据:
<?php
include "conn.php";
$c1 = $db->c1;
//db.c1.find({"age":{$gt:40}});
//{name:"user1"}==array("name"=>"user1");
//[1,2] = array(1,2);
$arr = array();
$ret = $c1->find($arr);
foreach ($ret as $val) {
//echo "id:{$val['_id']}<BR>";
///echo "name:{$val['name']}<BR>";
$age = isset($val['age']) ? $val['age'] : 0;
echo "<a href='user.php?id={$val['_id']}'>{$val['name']}</a> age:{$age}---<a href='delete.php?name={$val['name']}'>del</a>--<a href='update.php?id={$val['_id']}'>update</a>";
echo "<BR><BR><BR>";
}
?>
修改:
<?php
include "conn.php";
$c1 = $db->c1;
//$db.c1.update({name:"user1"},{$set:{age:300}});
$id = new MongoId($_GET['id']);
$arr=array('_id'=>$id);
$darr = array('$set'=>array('age'=>250));
$opts = array('upsert'=>false,'multiple'=>true);
//相当于db.update()后面的第三跟第四个叁数
if($c1->update($arr,$darr, $opts)){
echo "<script>location='find.php'</script>";
}else{
echo "更改失败!";
}
?>
插入:
<?php
include "conn.php";
$c1 = $db->c1;
//db.c1.insert({name:"user3", age:30, sex:"man"});
$arr = array("name"=>"user3", "age"=>30, "sex"=>"man");
if($c1->insert($arr)){
echo "<script>location='find.php'</script>";
}else{
echo "插入数据失败!";
}
?>
删除:
<?php
include "conn.php";
$c1 = $db->c1;
//db.c1.remover({"name":"user2"});
$name = $_GET['name'];
if(!empty($name))
{
$arr = array("name"=>$name);
if($c1->remove($arr)){
echo "<script>location='find.php'</script>";
}else{
echo "删除失败";
}
}else{
echo "数据为空!";
}
?>
详细信息:
<?php
include "conn.php";
$c1 = $db->c1;
//db.c1.find({_id:ObjectId("123456")};
$oid = new MongoId($_GET['id']);
$arr = array("_id"=>$oid);
$ret = $c1->findOne($arr);
var_dump($ret);
?>
第六部分 PHP实例相关推荐
- 第十六章 综合实例——《跟我学Shiro》
目录贴: 跟我学Shiro目录贴 简单的实体关系图 简单数据字典 用户(sys_user) 名称 类型 长度 描述 id bigint 编号 主键 username varchar 100 用户名 p ...
- Access教程 第六章 数据库实例分析
本章内容 ◆ 数据库总体分析和设计 ◆ 数据库的建立 ◆ 数据库对象的完善 本章是对前面学习的回顾.联系和巩固,通过建立一个微型的学生信息数据库实例,来灵活运用前面的知识. 一.数据库功能分析 所建立 ...
- python修行之路(六 三级菜单实例)
三级菜单实例: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, ...
- HTML 六十二 实例
HTML 基础标签实例 一个简单的 HTML 文件 这个例子是一个很简单的 HTML 文件,使用了尽可能少的 HTML 标签.它向您演示了 body 元素中的内容是如何被浏览器显示的. 简单的段落 此 ...
- WCF学习(六):实例
准备技术: WCF服务契约.数据契约等基础知识 Donet基本开发 内容概要: 三种实例激活类型 单调服务 会话服务 单例服务 实例类型 WCF支持三种实例类型:PerCall.PerSe ...
- Android OpenGL ES(六)创建实例应用OpenGLDemos程序框架 .
有了前面关于Android OpenGL ES的介绍,可以开始创建示例程序OpenGLDemos. 使用Eclipse 创建一个Android项目 Project Name: OpenGLDemos ...
- [PMP]一张图带你了解项目管理49个过程(PMBOK第六版-附实例)
- 一张图带你了解项目管理49个过程(PMBOK第六版-附实例)
转载仅供本人存档及后续研究使用,请尊重原创. 作者:杨波平,圣略咨询首席PMP讲师,美国 AACTP 国际注册培训师.项目管理专业讲师.微软 MCSE.
- mysql5.5多实例配置_mysql-5.5.32多实例配置
一.安装依赖包 yum install ncurses-devel libaio-devel -y 二.下载cmake2.8.8和mysql.5.5.32 PS:我这里直接下载好了所以就用rz上传了 ...
最新文章
- 深度学习中的欠拟合和过拟合简介
- Kotlin学习笔记-基础语法
- mysql中find_in_set()函数的使用
- golang中的strings.IndexRune
- Windows驱动开发-_驱动对象学习和内核处理字符串初步
- Java泛型总结---基本用法,类型限定,通配符,类型擦除
- 28--仅仅反转字母
- Win32中常用消息
- (30)SPI接口调试丢数据解决(FPGA不积跬步101)
- Bailian2976 Bailian1936 All in All【字符串匹配】
- javascript 正则表达式小案例
- 10个深度学习软件_关于深度学习的10个问题
- 应用计算机测定线性电阻伏安特性实验结论,线性电阻和非线性电阻伏安特性曲线测定实验报告(共8篇).docx...
- django3 分布式路由、应用以及模型
- 计算机网络dce是什么意思,DTE与DCE的解释
- 带顶点动画的护盾效果——UnityShader学习笔记
- docker2-镜像原理及创建新的镜像
- 阿里云“网红“运维工程师白金:做一个平凡的圆梦人
- 题目60 相同字母消除法(栈)(ok)
- 7-23 币值转换(20 分)
热门文章
- CPU核数和线程数查找
- 二维数组子数组矩形和
- Lodop输出页面input文本框的最新值
- zabbix 3.2.1 安装 graphtree3.0.4 或 graphtree3.2.x
- Ztree手风琴效果(第三版)
- Asp.Net MVC中使用ACE模板之Jqgrid
- [Documentation]porting
- ArcGIS Server 中AJAX应用系列(3)
- 什么是k-NN算法?怎样实现?终于有人讲明白了
- SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!