zoukankan      html  css  js  c++  java
  • PHP操作MongoDB数据库具体样例介绍(增、删、改、查) (六)

    PHP操作mongodb:

    PHP 要操作mongodb须要打模块
    官网能够下载:http://pecl.php.net/package/mongo 下载

    mongodb设置成用户授权的启动方式

    php手冊没有些用户授权方式登陆的方法:
    conn.php
    <?

    php
    $conn = new Mongo("mongodb://user1:123456@localhost:27017/test"); //用户授权链接mongodb test数据库
    $db = $conn->test;
    ?>

    find.php
    <?php
    include "conn.php";
    $c1 = $db->c1;    //操作c1集合

    //因为php里面不能直接用json
    //db.c1.find({name:"user1"});   不能这么玩
    //{name:"user1"} == array("name"=>"user1")   用这样的形式
    //[1,2] == array(1,2);
    //{} == array()

    $arr=array();
    $rst = $c1->find($arr);
    foreach($rst as $val){
    echo "<pre>";
    print_r($val['name']);  //取id的话  得"_id"
    }


    样例2:指定值查询
    $arr = array("name"=>"user1");  //查询nam=user1的
    $rst = $c1->find($arr);
    foreach($rst as $val){
    echo "<pre>";
    $fis = $val['_id'];
    print_r($val);  
    echo "<a href='user.php?

    fid={$fid}'></a>";   //你会发现fid传到user.php的时候变成字符串了。怎么解决?
    //user.php   依据_id查mongodb相应的数据
    <?php
    include "conn.php";
    $c1 = $db->c1;
    $oid= new MongoId($_GET['fid']); 用这个转一下
    var_dump($oid);  //还是Object,不转的话就是string类型

    $arr = array("_id"=>"$oid");  
    $rst = $c1->find($arr);
    foreach($rst as $val){
    echo "<pre>";
    print_r($val); 
    }
    ?>
    }


    样例3:添加
    include "conn.php";
    $c1 = $db->c1;
    //db.c1.insert({"name"=>"user3",age:30,"sex"=>"nan"});
    $arr = array("name"=>"user3","age"=>30,"sex"=>"nan");
    if($c1->insert($arr))
    echo '成功';
    else
    echo '失败';




    样例4:删
    include "conn.php";
    $c1 = $db->c1;
    //db.c1.remove({"name"=>"user2"});
    $arr = array("name"=>"user2");
    if($c1->remove($arr))
    echo '删除成功';
    else
    echo '删除失败';




    样例4:改
    include "conn.php";
    $c1 = $db->c1;
    //db.c1.update({"name"=>"user2"},{$set:{age:20,sex:"nan"}}); 添加字段
    $sarr = array("name"=>"user2");
    $darr = array('$set'=>array('sex'=>'nan','age'=>24));
    $opts = array('upsert'=>0,'multiple'=>1);
    if($c1->update($sarr,$darr,$opts))  //php里面的update仅仅能传3个參数
    echo '更改成功';
    else
    echo '更改失败';

    //关闭
    $conn->close();
    ?

    >



  • 相关阅读:
    spring hibernate 调用存储过程
    Mybatis mapper配置
    流量红包算法
    带搜索的下拉框Chosen
    生成二维码
    Linux netlink机制
    OpenFlow Switch学习笔记(七)——Matching Fields
    Hierarchical Token Bucket
    OpenvSwitch架构
    Examining Open vSwitch Traffic Patterns
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7286627.html
Copyright © 2011-2022 走看看