资讯专栏INFORMATION COLUMN

【mongoDB基础篇②】PHP-mongo扩展的编译以及使用

Barry_Ng / 3256人阅读

摘要:安装扩展安装扩展和安装其他扩展的步骤一样首先上上面搜索得到下载地址解压进入后进行编译有可能要写全的地址编译成功后出现得其地址写入有可能要写全的路径也就是上面的提示安装完以后看中有没有这个扩展有就表示安装成功以上基

安装PHP-mongo扩展

安装php-mongo扩展和安装其他php扩展的步骤一样:

#1.首先上http://pecl.php.net上面搜索mongo,得到下载地址
wget http://pecl.php.net/get/mongo-1.6.11.tgz
tar zxvf ./mongo-1.6.11.tgz

#2.解压进入,phpize后进行编译
cd ./mongo-1.6.11
phpize #有可能要写全phpize的地址
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

#3.编译成功后出现:
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

#4.得其地址写入php.ini
extension = mongo.so #有可能要写全mongo.so的路径,也就是上面的提示

#5.安装完以后,看phpinfo()中有没有这个扩展,有就表示安装成功;

以上基本上也是其他PHP扩展安装的常规方法

官方的PHP-mongo类使用

一般都是进行二次封装后再使用,便于后续的扩展;在此之前,我们先熟悉官方的的使用方法,php官方类使用起来跟其他扩展的类方法相比略为特殊

 shop; //获取名称为shop的数据库对象,或者使用$db = $m->selectDB("example"),这个时候$db是由class mongoDB来实例的,更多可以参考http://php.net/manual/zh/class.mongodb.php  

$goods = $db -> goods; //得到goods集合对象,这个时候的$goods对象是由class MongoCollection类来实例的;

//db.goods.find({},{"_id":0,"goods_id":1,"goods_name":1})
$cursor = $goods -> $goods -> find(array(),array("_id" => 0,"goods_id" => 1,"goods_name" => 1));  //得到cursor对象,这个时候的cursor对象是由class MongoCursor来实例的

#接下来才是正式操作mongoDB的数据,把json转换为数组既可;
$data = array();
foreach ($cursor as $v) {
  $data[] = $v;
}

#或者
$data = iterator_to_array($cursor); # 内置函数: 将迭代器中的元素拷贝到数组

/**********部分操作示例**********/

$users = $db -> users;

# 返回值
$insert = $users -> insert(array("user_id" => 1,"user_name" => "zxg","sex" => "boy"));
/*
  Array
  (
      [ok] => 1 //除非 last_error 本身出现错误,否则都是1,代表成功;
      [n] => 0 //受影响的数量,在insert的时候这个值始终是0;
      [err] => null
      [errmsg] => null
  )
 */
 
# 执行js,注意这是class mongoDB类的方法
$response = $db->execute("function(greeting, name) { return greeting+", "+name+"!"; }", array("Good bye", "Joe"));
echo $response["retval"]; // Good bye, Joe!
?>
参考

PHP: MongoClient - Manual: http://php.net/manual/zh/class.mongoclient.php

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18810.html

相关文章

  • mac 编译安装php-mongo 扩展时报evp.h文件找不到解决方案

    摘要:编译安装扩展时报文件找不到的解决方案我在编译扩展的时候遇到了这个问题问题分析就是这个文件找不到解决思路找一个文件放过去在本地找一下看有没有这个文件得到下面的结果于是拷贝一个过去再执行显示问题解决。 mac 编译安装php-mongo 扩展时报evp.h文件找不到的解决方案 我在编译mongo扩展的时候 遇到了这个问题: In file included from /usr/local/...

    twohappy 评论0 收藏0
  • mac 编译安装php-mongo 扩展时报evp.h文件找不到解决方案

    摘要:编译安装扩展时报文件找不到的解决方案我在编译扩展的时候遇到了这个问题问题分析就是这个文件找不到解决思路找一个文件放过去在本地找一下看有没有这个文件得到下面的结果于是拷贝一个过去再执行显示问题解决。 mac 编译安装php-mongo 扩展时报evp.h文件找不到的解决方案 我在编译mongo扩展的时候 遇到了这个问题: In file included from /usr/local/...

    jhhfft 评论0 收藏0
  • PHP7 mongoDB扩展使用

    摘要:最近在做的项目需要将升级到,使用过扩展的同学应该知道,的扩展是完全不兼容的扩展的,改如何使用呢。 最近在做的项目需要将PHP5.6升级到PHP7.0,使用过PHP-mongo扩展的同学应该知道,PHP7.0的mongodb扩展是完全不兼容PHP5.6的mongo扩展的,php-mongodb改如何使用呢。 下面直接说明各种方法的使用: 1.mongodb连接: private func...

    objc94 评论0 收藏0
  • PHP7 mongoDB扩展使用

    摘要:最近在做的项目需要将升级到,使用过扩展的同学应该知道,的扩展是完全不兼容的扩展的,改如何使用呢。 最近在做的项目需要将PHP5.6升级到PHP7.0,使用过PHP-mongo扩展的同学应该知道,PHP7.0的mongodb扩展是完全不兼容PHP5.6的mongo扩展的,php-mongodb改如何使用呢。 下面直接说明各种方法的使用: 1.mongodb连接: private func...

    Paul_King 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<